不同方式不同系統編譯main1 c程式

2021-10-09 15:50:17 字數 1557 閱讀 1435

在ubuntu系統下用c語言編寫乙個簡單的輸出 hello word的程式,並編譯有、執行之;

請編寫乙個主程式檔案 main1.c 和乙個子程式檔案 sub1.c, 要求:子程式sub1.c 包含乙個算術運算函式 float x2x(int a,int b),此函式功能為對兩個輸入整型引數做某個運算,將結果做浮點數返回;主程式main1.c,定義並賦值兩整型變數,然後呼叫函式 x2x,將x2x的返回結果printf出來。1) 請在ubuntu系統用gcc 命令列方式編譯主程式main1.c 並執行;2) 請在windows系統下用你熟悉的編譯工具編譯主程式main1.c 並執行。

在任務2基礎上,在ubuntu系統下用makefile方式程式設計主程式。。

**如下:

#include

intmain()

效果展示:

說明:gcc的編譯流程

預處理,生成預編譯檔案

gcc -e hello.c -o hello.i

編譯,生成彙編**

gcc -s hello.i -o hello.s

彙編,生成目標檔案

gcc -c hello.s -o hello.o

鏈結,生成可執行檔案

gcc hello.o -o hello

#include

float

x2x(

int a,

int b)

;void

main()

float

x2x(

int a,

int b)

gcc編譯main.c

結果展示:

windows下visual studio 2019編譯main.c

makefile檔案內容:

cc=gcc

objects=scr/main.o scr/sub1.o

target=main

$(target):$(objects)

$(cc)

-o $(target) $(objects)

scr/main.o:scr/main.c

$(cc)

-o $@ -c $<

scr/sub1.o:scr/sub1.c

$(cc)

-o $@ -c $<

clean:

rm-rf $(objects) $(target)

結果展示:

不同系統編碼造成的詭異錯誤

作為碼農,經常在不同作業系統間切換。linux的檔案一般為uft8無bom格式,用換行符進行換行。windows下vs的檔案預設gb2312,用回車換行來換行。最近碰到問題,linux ubuntu18 下執行正常,拿到vs2017下編譯,出現兩種情況 c4819警告 warning c4819 該...

不同方式分割平面問題

1 n條直線最多分平面問題 題目大致如 n條直線,最多可以把平面分為多少個區域。析 可能你以前就見過這題目,這充其量是一道初中的思考題。但乙個型別的題目還是從簡單的入手,才容易發現規律。當有n 1條直線時,平面最多被分成了f n 1 個區域。則第n條直線要是切成的區域數最多,就必須與每條直線相交且不...

oc不同方式實現鎖2

在上一文中,我們已經討論過用objective c鎖幾種實現 跳轉位址 也用 實際的演示了如何通過構建乙個互斥鎖來實現多執行緒的資源共享及執行緒安全,今天我們繼續討論鎖的一些高階用法。1.nsrecursivelock遞迴鎖 平時我們在 中使用鎖的時候,最容易犯的乙個錯誤就是造成死鎖,而容易造成死鎖...