當前位置:首頁 » 編程軟體 » makefile編譯c

makefile編譯c

發布時間: 2022-07-09 13:23:53

1. makefile 怎麼編譯 c文件

1.單個.c文件
kernel配置文件中定義
CONFIG_RUNYEE_CAMVIB=m
注意上面的m,表示作為一個模塊進行編譯,最後在MAKEFILE中需要用到的編譯開關。
然後再相應的源碼目錄中的MAKEFILE中添加如下語句:
obj-$(CONFIG_RUNYEE_CAMVIB) := camvib.o

2. 編譯esal/c程序的makefile文件如何寫

你可以根據這樣的方法來編寫:
b074@gliethttp:~/work/gunzip$
cat
Makefile
CC
=
gcc-4.1
LD
=
gcc-4.1
CFLAGS
=
-Wall
-c
-Dgliethttp
-I.
LDFLAGS
=
-lpthread
SRCS
=
$(wildcard
*.c)
OBJS
=
$(patsubst
%c,%o,$(SRCS))
TARGET
=
gliethttp
.PHONY:
all
clean
all:
$(TARGET)
$(TARGET):
$(OBJS)
$(LD)
$(LDFLAGS)
-o
$@
$^
%o:
%c
$(CC)
$(CFLAGS)
-o
$@
$<
clean:
@rm
-f
*.o
$(TARGET)
編譯當前Makefile所在目錄下的所有.c文件
執行
make
make
clean

3. 如何用makefile編譯多個c文件

假設有下面幾個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

4. makefile編譯c文件問題

hehe,解答你的問題。
你混淆了一個概念,編譯和預編譯,在編譯之前進行的操作稱為預編譯,而我們的.h文件也就是頭文件是在預編譯的階段插入到了.c文件也就是源文件里來,所以在編譯的階段可以直接對.c文件進行編譯工作了。.h文件在編譯階段不需要再顯式的調用了,我想你應該明白了。

5. c語言編譯運行出現Makefile.win已經改變,怎麼改

這個提示是說你當前項目里有多個文件里都有叫main的函數,這樣會導致系統不清楚從哪個main執行,建議你可以把其它文件里的main隨便改下下名字比如叫main1什麼的,只把你當前要運行的文件里的主函數改為main就行了。
或者建議如果只有一般的測試代碼只有一個文件的那種,新建的時候就不要建項目,直接建文件就可以了。

6. 如何通過makefile生成cmake

CMake是一個跨平台的安裝(編譯)工具,可以用簡單的語句來描述所有平台的安裝(編譯過程)。他能夠輸出各種各樣的makefile或者project文件,能測試編譯器所支持的C++特性。只是 CMake 的組態檔取名為 CmakeLists.txt。Cmake 並不直接建構出最終的軟體,而是產生標準的建構檔(如 linux 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然後再依一般的建構方式使用。
在 linux 平台下使用 CMake 生成 Makefile 並編譯的流程如下:
編寫 CmakeLists.txt。
執行命令 「cmake PATH」 或者 「ccmake PATH」 生成 Makefile ( PATH 是 CMakeLists.txt 所在的目錄 )。
使用 make 命令進行編譯
工程實例:
一. 編寫各層CMakeLists.txt
主目錄的主程序main.cpp
#include "hello.h"
extern Hello hello;
int main()
{
hello.Print();

7. makefile編譯.c.o問題

.c.o寫法是不對的。

可以改成這樣:

TARGET=libtest.a
all:$(TARGET)

a.o:a.c
gcc-c$<-o$@
b.o:b.c
gcc-c$<-o$@
c.o:c.c
gcc-c$<-o$@
$(TARGET):a.ob.oc.o
[email protected]

8. 如何寫Makefile編譯匯編和C文件

有些場景下編譯的程序是不能依賴OS和標準的C庫的,並且需要C和匯編混合編譯,如bootloader程序,就需要制定參數-nostdlib,這樣的Makefile如下所示:all:arm-linux-gcc -O2 -Wall -nostdlib -march=armv4 -Wl,-T,ipl.lds uart.c ipl.c nfc.c nand.c sha1.c arm.s -o ipl.exe

9. c語言 怎麼makefile

my_run_filename: main.o set1.o set2.o set3.o
gcc -o my_run_filename main.o set1.o set2.o set3.o
main.o: main.c
gcc -c main.c
set1.o: set1.c
gcc - c set1.c
set2.o: set2.c
gcc -c set2.c
set3.o:set3.c
gcc -c set3.c
雖然我以前也使用過 make 命令對 makefile 文件進行多個源文件進行編譯、鏈接,但是由於我已經很多年不編寫 C 語言程序了,所以也不敢說我寫的就完全正確。但是該 makefile的基本思路我可以給你解釋一下:
my_run_filename: main.o set1.o set2.o set3.o
gcc -o my_run_filename main.o set1.o set2.o set3.o
my_run_filename 是最終生成的可執行程序名,它依賴於四個中間文件(以 *.o 為結尾):main.o set1.o set2.o set3.o
生成該最終可執行的程序名的命令是:gcc -o my_run_filename main.o set1.o set2.o set3.o
main.o: main.c
gcc -c main.c
main.o 這個中間文件依賴於 main.c 源程序,其中:gcc -c main.c 代表只編譯、不鏈接。
gcc 的 -c 選項表示只產生 main.o 文件,等待所有模塊單獨編譯通過了之後,再和別的一起進行鏈接。
其它 set1、set2、set3 同理。
雖然我知道 makefile 的大致思路,但是給我印象最深的就是:make 工具 對 makefile 文本文件的書寫規則是相當苛刻的,你可能還需要花費較多的時間進行 make 調試。

熱點內容
erp系統搭建備用伺服器 發布:2025-02-09 04:07:38 瀏覽:943
戴爾伺服器在bios怎麼配置管理ip 發布:2025-02-09 04:01:53 瀏覽:548
小魚易連雲存儲 發布:2025-02-09 03:59:47 瀏覽:87
正在限制訪問 發布:2025-02-09 03:47:17 瀏覽:901
架設資料庫 發布:2025-02-09 03:41:29 瀏覽:964
imacpro哪個配置最好 發布:2025-02-09 03:32:29 瀏覽:251
用編程對話 發布:2025-02-09 03:23:43 瀏覽:86
自助解壓球 發布:2025-02-09 03:17:37 瀏覽:319
linux進程的退出 發布:2025-02-09 03:00:22 瀏覽:814
淘寶上傳時間 發布:2025-02-09 02:42:13 瀏覽:638