利用Qmake創(chuàng)建makefile

最近工作當中遇到小需求,simulink生成各個功能模塊的代碼胆剧,為了保證在遞交給底層所有.c和.h文件接口上沒有問題粱侣,因此在生成代碼過后先自己用C編譯器編譯一次。本來前同事是利用VS侥祭,創(chuàng)建工程叁执,把源代碼加進去生成的,但是我覺得太麻煩了矮冬,每個人想編譯的時候都要安裝巨大無比的VS谈宛。

實際上,只需要mingw的gcc命令即可完成工作胎署。不過核心問題在于吆录,一共有30多個功能模塊分別單獨生成代碼,源代碼分布在30多個文件夾下面琼牧,并且模塊之間有文件關(guān)聯(lián)恢筝,因此需要寫makefile來完成關(guān)聯(lián)編譯。

由于不是計算機科班出身巨坊,對makefile的語法本身不是特別的熟悉撬槽。在網(wǎng)上找了一些模板后也存在這樣那樣的問題,實在不想去完整的看一遍makefile的語法趾撵,就另辟蹊徑利用QT的qmake來生成makefile侄柔。

構(gòu)建順序

總的來說,為了完成此項工作占调,過程如下圖所示:

Step 1:

打開QT勋拟,創(chuàng)建C Application工程,放在同源代碼的路徑下妈候,接下來全程下一步就好了敢靡。這時候QT會創(chuàng)建pro文件到該文件夾下。

建立工程

Step 2:

右鍵點擊該工程頂層文件夾苦银,選擇加入存在的路徑啸胧,然后定位到源代碼路徑赶站,點擊start parsing,就可以掃描源代碼纺念。OK之后可以看到pro文件中加入所有源代碼贝椿。

加入待編譯源代碼

Step 3:

打開pro文件,加入INCLUDEPATH +=陷谱,填上所有H文件所在路徑烙博,格式和SOURCES+=一樣。(由于文件太多烟逊,我是用python寫了個小腳本渣窜,把路徑打印出來粘貼到上面的)

添加includepath

Step 4:

保存pro文件,運行Qmake宪躯。在命令行輸入qmake Test.pro(我創(chuàng)建的工程名字為Test)乔宿,可以看到該路徑下生成了好幾個文件。

Qmake生成的文件

經(jīng)過對三個makefile代碼的查看访雪,發(fā)現(xiàn)Makefile去調(diào)用Makefile.Debug和Makefile.Release所以最后我直接把使用Makefile.Debug详瑞,把里面關(guān)于QT的代碼都刪除,保證只編譯我們需要去編譯的文件臣缀。(Makefile.Debug本身并不是makefile文件坝橡,我是復(fù)制里面的代碼到makefile文件夾下)

Step 5:

編寫bat文件,主要是創(chuàng)建debug文件夾(存放.o文件)精置,編譯報錯終止編譯计寇,編譯結(jié)束運行exe文件,代碼如下氯窍。

echo off
if not exist debug md debug
mingw32-make
if %errorlevel%  equ 0 (
    echo task編譯完畢
    del debug\*.o
    echo 刪除中間文件完畢
    start debug\task.exe 
) else (
    del debug\*.o
    echo 編譯錯誤饲常,請檢查源文件
)
pause

最后保留object_script.Test.Debug文件蹲堂,刪除其余的即可狼讨。剩下的文件如下所示:


保留文件

因此大功告成,之后每次只需要點擊bat文件即可柒竞。(由于源代碼是simulink生成的政供,文件名和結(jié)構(gòu)基本上不會發(fā)生變化,所以比較適合固定的Makefile文件朽基。如果經(jīng)常會加源文件該方法就不太適用了)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末布隔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子稼虎,更是在濱河造成了極大的恐慌衅檀,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霎俩,死亡現(xiàn)場離奇詭異哀军,居然都是意外死亡沉眶,警方通過查閱死者的電腦和手機织盼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門稠屠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纳胧,“玉大人呕臂,你說我怎么就攤上這事弥雹≈笞荩” “怎么了照卦?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵枪眉,是天一觀的道長蹬叭。 經(jīng)常有香客問我藕咏,道長,這世上最難降的妖魔是什么具垫? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任侈离,我火速辦了婚禮,結(jié)果婚禮上筝蚕,老公的妹妹穿的比我還像新娘卦碾。我一直安慰自己,他們只是感情好起宽,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布洲胖。 她就那樣靜靜地躺著,像睡著了一般坯沪。 火紅的嫁衣襯著肌膚如雪绿映。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天腐晾,我揣著相機與錄音叉弦,去河邊找鬼。 笑死藻糖,一個胖子當著我的面吹牛淹冰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播巨柒,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼樱拴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了洋满?” 一聲冷哼從身側(cè)響起晶乔,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎牺勾,沒想到半個月后正罢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡驻民,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年翻具,在試婚紗的時候發(fā)現(xiàn)自己被綠了袱饭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡呛占,死狀恐怖虑乖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晾虑,我是刑警寧澤疹味,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站帜篇,受9級特大地震影響糙捺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜笙隙,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一洪灯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧竟痰,春花似錦签钩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至莽鸿,卻和暖如春昧旨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背祥得。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工兔沃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人级及。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓乒疏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親创千。 傳聞我的和親對象是個殘疾皇子缰雇,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容