[問題] Makefile該如何增加link library?

看板C_and_CPP (C/C++)作者 (番薯猴)時間10年前 (2016/03/23 01:41), 10年前編輯推噓0(0016)
留言16則, 1人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) CentOS 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) TBB 問題(Question): 小弟曾在 #1MyEC2hp 請益關於編譯時怎麼解決需要link library的問題, 最後知道只要在編譯指令後方加入 -l<library name> 參數就好了, 但現在是需要make一個專案。 在板上有/makefile 過,也Google過「makefile link lib」關鍵字, 可是都沒找到滿意答案。 我的Makefile: https://gist.github.com/anonymous/b5a62411d51eca3c87f5 不太明白要在哪個地方加入 -ltbb 指令去link tbb library, 曾在 LIBS = -lz 的後方空一格再加上-ltbb,執行make依然error。 希望大家幫幫我 Orz。 願意給成功解答的人200P,拜託了 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.76.109 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1458668468.A.F68.html

03/23 01:51, , 1F
這 Makefile 又不是你寫的,是 automake generate 出來的
03/23 01:51, 1F

03/23 01:54, , 2F
正規作法應該要去改那個 autoconf 的設定檔增加程式庫
03/23 01:54, 2F

03/23 01:56, , 3F
快速解法可以到 Makefile.in 增加 LDLIBS=-ltbb
03/23 01:56, 3F

03/23 01:56, , 4F
不加在 Makefile 是因為你每次跑 ./configure 都會把
03/23 01:56, 4F

03/23 01:57, , 5F
舊的 Makefile 用新產生的 Makefile 蓋掉
03/23 01:57, 5F

03/23 01:59, , 6F
make 時仔細看一下 echo 出來的 compile 命令列正不正確
03/23 01:59, 6F
透過板上donby大的教學,我終於找到關鍵的Makefile了! 改寫裡面的LIBS後也確實可以成功make,在此感謝!(已送P幣) 但似乎是治標不治本的做法。 關於正規做法,怎麼找到autoconf編輯呢?這好像是一條指令。 (這問題解了再給100P) ※ 編輯: henry8168 (36.236.76.109), 03/23/2016 03:03:36

03/23 03:03, , 7F
檔案預設叫 configure.ac,你需要有安裝 autoconf
03/23 03:03, 7F

03/23 03:04, , 8F
在檔案中加入 AC_CHECK_LIB() 或 AC_SEARCH_LIBS()
03/23 03:04, 8F

03/23 03:05, , 9F
說明文件在 http://goo.gl/QqMVba
03/23 03:05, 9F

03/23 03:06, , 10F
記得要加在 AC_INIT 之後,AC_OUTPUT 之前
03/23 03:06, 10F

03/23 03:06, , 11F
不用給我 P 幣了,感謝你的好意不過我用不到 :)
03/23 03:06, 11F
謝謝你們!好睏哦,但學到很多XD ※ 編輯: henry8168 (36.236.76.109), 03/23/2016 03:09:17

03/23 03:39, , 12F
呃,我忘了另一個較簡單的作法,你先設定環境變數
03/23 03:39, 12F

03/23 03:40, , 13F
export LDFLAGS=-ltbb 或 setenv LDFLAGS=-ltbb
03/23 03:40, 13F

03/23 03:41, , 14F
說錯了,不是 LDFLAGS 而是 LIBS
03/23 03:41, 14F

03/23 03:41, , 15F
這樣 LIBS 環境設定就會被包進新的 Makefile 裡
03/23 03:41, 15F

03/23 03:42, , 16F
這招打 configure --help 顯示的說明書最後面就有寫了
03/23 03:42, 16F
對吼,還有環境變數可以更改 ※ 編輯: henry8168 (140.123.104.195), 03/23/2016 16:53:06
文章代碼(AID): #1MyOEqze (C_and_CPP)
文章代碼(AID): #1MyOEqze (C_and_CPP)