gcc編譯makefile
⑴ 萌新求助、gcc編譯c++動態庫編寫makefile
假設有下面幾個c++文件:
wherewhen.h wherewhen.c
countdown.h countdown.c 包含了math.h, 需要連接庫文件
main.c 主函數, main.c 包含了兩個頭文件 wherewhen.h and countdown.h
1、第一種編譯方法:
g++ -Wall -g wherewhen.c countdown.c main.c -lm -o myprogram
生成可執行文件myprogram
2、第二中編譯方法, 分別編譯各個文件:
g++ -Wall -g -c wherewhen.c
g++ -Wall -g -c countdown.c
g++ -Wall -g -c main.c
g++ -g wherewhen.o countdown.o main.o -lm -o myprogram
⑵ 請教大神,gcc編譯Makefile,只有第一句編譯了,後面的語句都沒有執行,這是為什麼
你在執行make的時候,會執行第一target做總的target, 你在boot_uncert: ${OBJS1} boot_uncert.c上一行加上all:boot_uncert bootmech_2D bootmech_4D satsi_2D satsi_2D_tradeoff satsifast_2D satsi_4D satsi_4D_tradeoff satsifast_4D
⑶ gcc編譯和用makefile編譯有什麼共同和不同
如果你懂得makefile的語法, 把makefile翻譯成BAT(批處理)是非常簡單的事情.只要命令順序正確,選項相同,結果肯定是一樣的.
相對於批命令, 使用makefile的優勢主要體現在比較大的工程項目, 比如由眾多個源程序文件組成的大程序,只要修改其中一個文件,編譯連接的問題就凸現出來了.使用makefile, 只須鍵入一個make命令, 什麼事情都不必操心, make會查找你修改了哪個文件,哪些文件將受到影響,需要新編譯或生成什麼文件. 不受影響的文件不會再一次重新生成. 而用批處理則不論你是否修改了某一個或某幾個文件, 所有的批命令行都要重新執行一遍. 這個優勢對小的項目來說不是太明顯.
⑷ 怎麼用gcc 和makefile
可以在終端輸入以下命令查看相關軟體是否存在:
gcc --help
make --help
有詳細說明的就表明安裝有,沒有的話可以到/usr/bin下找找
gcc在編譯程序時用到,makefile是方便編譯的工具.
⑸ 什麼是makefile如何編寫makefile
makefile是linux下使用gcc編譯源程序時,所依賴的規則文件。
比如你在編譯一個hello.c的源文件,使用gcc編譯器,如何編譯?生成可執行程序的名字叫什麼,都需要在makefile裡面定義這個規則。
具體教程,可以參考宅學部落(微信公眾號):《Makefile工程實踐》視頻教程,教你從零開始一步一步如何寫一個企業項目的Makefile,從小白到專家。
⑹ 如何用arm-linux-gcc編譯驅動程序,Makefile文件怎麼寫
回復
http://bbs.chinaunix.net/viewthread.php?tid=1921952
上面說的方法我還是不是很明白啊,我現在簡直沒辦法了,昨天晚我看到一個資料上面寫的helloworld驅動的例子有兩份Makefile,一份是x86機子上的,一份是arm平台上的,arm上的這樣寫:ifneq
($(KERNELRELEASE),)obj-m:=hello.oelseKDIR/usr/src/kernels/opt/EmbedSky/linux-2.6.30.4/all:
make
-C
$(KDIR)
M=$(PWD)
moles
ARCH=arm
CROSS_COMPLIE=arm-linux-clean:
rm
-f
*.ko
*.o
*.mod.o
*.mod.c
*.symversendif看到後我想應該是要用用於移植的內核來編譯吧,於是我乾脆把資料提供的內核拷貝到PC的Linux系統中然後解壓、編譯直至安裝,然後就再模仿例子寫了Makefile如上所示,然後make後終於通過編譯成功了,然後我再下載到arm板上安裝,卻又出現下面的錯誤:insmod:
can't
insert
'hello.ko':
unknown
symbol
in
mole,
or
unknown
parameter。我就又徹底暈了。到底是怎麼回事,應該怎麼辦的呢?
⑺ gcc makefile編譯報錯如何解決
明天我幫你解答。今天項目組聚會,沒時間了。。。
LinkList.o: LinkList1.c LinkList.h comm.h
$(CC) -Wall -g -c $^ -o $@(這里我改為$@ $^也不行)
試試看。語法沒有錯誤
⑻ ubuntu下gcc編譯c語言文件makefile的問題
makefile看起來沒什麼大問題,你出現的問題是gcc沒找到
可以現在shell下面打一個gcc看看,或者gcc --version
確認下是否已經正確安裝gcc,且已經把gcc添加到了PATH裡面。
⑼ Linux上怎麼把GCC的編譯選項設置到makefile文件中
這個沒有什麼特殊的要求。你只要按照你需要的正確的語法規則和編譯順序,將 gcc 編譯器對 C 語言源程序的編譯選項(例如:對源程序只編譯不連接的選項為:-c、或者是生成指定的運行文件:-o my_outputfile,等等)寫到 makefile 文本文件中即可。 但是一定要注意它們之間在 makefile 文件之間的前後順序。