-j [N], --jobs[=N] 同時允許 N 個任務;無參數表明允許無限個任務。
最有用的是去掉.o之間的依賴關系檢查,但這樣做需要對自己的工程項目子程序文件非常了解
B. 用makefile編輯的文件怎麼編譯
我們在linux下進行編程的時候,會發現我們沒有工程文件,然後,我們在不同目錄下
的文件如此雜亂無章,讓我們感到頭疼,怎麼可以把它們進行同步在一起,然後,一起進行編譯呢,
這里,就是我們需要用到的工具了,makefile文件的作用了,makefile可以有效地組織文件和目錄,
把處於不同目錄下的文件進行同時編譯,而不會因為目錄的不同,而有所差別。
這里,我來分享一下makefile的簡單的用法。
1:基本的格式:
magproc:magproc.o dbproc.o
$(EC) -o $(BINPATH)/$@ $? $(LIB)
可執行文件名:鏈接文件
編譯工具 (參數) (鏈接庫) 文件名
2:工程文件Make.defines
3:makefile文件
http://jingyan..com/article/48206aeaf9e82e216ad6b335.html
C. makefile編譯c文件問題
hehe,解答你的問題。
你混淆了一個概念,編譯和預編譯,在編譯之前進行的操作稱為預編譯,而我們的.h文件也就是頭文件是在預編譯的階段插入到了.c文件也就是源文件里來,所以在編譯的階段可以直接對.c文件進行編譯工作了。.h文件在編譯階段不需要再顯式的調用了,我想你應該明白了。
D. 請教高手一個makefile編譯的問題。
在寫跨平台程序時,一個要注意的事情就是數據類型全部使用typedef對數據類型根據不同的編譯平台進行重新定義。
DEV-C++沒用過,但是最好不要去改這個環境變數,個人認為可能根據DEV-C++的編譯器來查找頭文件目錄,最好還是使用-I來指定頭文件目錄,一般來說不會沖突,手動指定優先順序應該高。
E. 如何用vs和makefile文件進行編譯
運行cmd.exe (or command.com in win9x)->進到vc/bin目錄->運行vc-vars32.bat->進到makefile 所在的目錄->nmake /f makefile
從sourceforge上下載下來的libjpeg源代碼中有一個makefile.vc的文件,可以通過nmake /f makefile.vc [nodebug=1]來編譯libjpeg,但是只能編譯靜態庫,如果需要編譯dll以便在emacs等程序中使用的話,需要修改makefile.vc和jmorecfg.h文件。在makefile.vc文件中添加編譯dll規則:
以下內容為程序代碼:
libjpeg.lib: $(LIBOBJECTS) $(RM) libjpeg.lib lib -out:libjpeg.lib $(LIBOBJECTS) #
添加以下這行 libjpeg.dll: $(LIBOBJECTS) $(RM) libjpeg.dll link -dll -out:libjpeg.dll $(LIBOBJECTS) 在jmorecfg.h中添加#define _WIN32_#define JPEG_DLL 然後nmake /f makefile.vc nodebug=1就可以編譯了。
將makefile復制為一個.mak文件,然後用VC打開即可!
.mak 就是一個makefile
可以指定怎樣編譯(命令行,必須先設置VC命令行環境)
vcvars32.bat可設置環境,在vc98/bin下 nmake /f XXXX.mak
如果有一個makefile就只要nmake就可以了。
F. 如何使用Makefile自動編譯iPhone程序
makefile裡面所寫的內容其實就是你要編譯的命令,那麼,什麼是編譯命令呢?
假寫你已經寫好一個程序代碼,並將之存在一個.c文件中,如:hello.c,在終端上你可以這樣做!在終端上輸入gcc -o hello hello.c
然後回車,看一看有沒有什麼反映,如果沒有打出很多英文的話,恭喜你!你完美地完成了第一步!然後,在終端中輸入./hello 看看是不是有什麼輸出了?
現在來解釋一下編譯命令:上面的命令的意思就是,使用gcc編譯器編譯hello.c源代碼,生成的文件名稱叫做hello.最後,要看程序運行結果,就要運行生成的程序也就是「./hello」了,「./」的意思就是在當前的目錄下運行。
而makefile中內容的就是上面的編譯命令,如:在makefile文件中寫入
Hello:hello.c
gcc -o Hello hello.c
保存文件之後直接在終端中輸入make,就完成編譯了!makefile存在的意義只是讓編譯更加方便,也就說,可以把所以的編譯都寫在一個makefile文件中,然後在終端中輸入make就可以完成makefile文件里的命令!
建議還是先將C語言入門,然後再學使用makefile編譯程序吧!因為剛開始的時候不用編譯很多文件,如果一個文件要編寫一個makefile文件的話,那豈不是很繁?
G. 關於Linux內核編譯中的Makefile
Makefile分析需要先找到它的目標,目標下面就是生成這個目標的依賴文件,clean後面目標依賴為空,所以它後面的命令只有在執行make
clean
的時候才會進入其中,執行刪除操作。
H. makefile編寫完成後,就直接可以編譯程序了
makefile主要應用於類Unix系統下,當然Windows平台下的MinGW也包含了make腳本處理工具,所以現在可以說實現了多平台的應用。
makefile本質上就是一個文本文件,所以不需要使用任何專用的編輯工具。由於makefile的廣泛應用,不少文本編輯器工具內置了makefile的文法高亮顯示功能,Windows下的Notepad++就是其中的一例:將文件保存文makefile(沒有任何擴展名)後就可以了。
需要注意的是,雖然makefile文件本身並沒有任何要求,但請確保你的系統中一定要有make程序才能進行腳本作業。
I. 請教各位高手如何控制Makefile里目標的編譯順序
一般來說,如果存在多級目錄,那麼再用makefile的時候,最好在每個目錄下也寫一個簡單的子makefile,這樣在總目錄下寫一個總的makefile,然後再總的makefile中調用子makefile,這樣寫起來就會比較清晰,編譯順序是要看你的總makefile中的步驟。
另外,如果你寫好之後,你也可以make -n一下,這樣也就可以看出make的編譯順序了!
也是剛開始學習makefile,共勉!