2011-03-07 48 views
0

我在編譯一個我爲類編寫的小程序。他們給了我們一個Makefile來使用,但它是在Linux的基礎上創建的,而且我擁有Mac OS。現在,當我運行make testFills,我得到這個錯誤:Makefile問題

ld: warning: directory '/lib' following -L not found 
ld: library not found for -ltiff 

下面是實際的Makefile文件

EXENAME=testFills 
OBJS=testFills.o animation.o EasyBMP.o solidColorPicker.o gridColorPicker.o gradientColorPicker.o rainbowColorPicker.o 
BMPDIR=../mp4_lib/include/EasyBMP 
IMGMAGICKCONFIG=-I../mp4_lib/include/ImageMagick -g -O2 -Wall -W -pthread 
IMGMAGICKLINKOPTS=-L../mp4_lib/lib -lMagick++ -lMagickWand -lMagickCore -ltiff -lfreetype -ljpeg -lpng -lfontconfig -lXext -lXt -lSM -lICE -lX11 -lbz2 -L/lib -lrsvg-2 -lgdk_pixbuf-2.0 -lm -ldl -lxml2 -lz -lm -lgomp -lpthread 

我在我的父目錄這個mp4_lib文件夾中的重要代碼,所以我不知道爲什麼它說它無法找到它。實際上它找不到任何過去 - 在上面的列表中提示。我不熟悉命令行編程,所以我不確定這可能意味着什麼,或者我可以如何解決它。有任何想法嗎?

回答

1

其5日線

-lbz2 -L/lib -lrsvg-2

你可能沒有一個/ lib目錄下,它可能應該只是-llib。

/lib中意味着它是計算機的根目錄下,而不是生成文件是英寸

+0

沒有這個工作。還有其他建議嗎? – Snowman 2011-03-07 21:15:15

+0

你可以給出現在的錯誤,還是一樣? – Twig 2011-03-07 21:16:29

+0

相同的錯誤.... – Snowman 2011-03-07 21:21:09

0

好像您的編譯器(gcc?)安裝的結構問題文件夾中。我在gcc的錯誤安裝中看到過類似的錯誤。請嘗試一下,你可以編譯一個小應用程序。

+0

如果我想自己指定一個路徑,比如/ users/admin/mp4_lib/lib,只是刪除那個L?不知道 – Snowman 2011-03-07 21:21:40

+0

的含義-L告訴編譯器在哪裏查找編譯的庫(目標文件)以便與它正在編譯的程序鏈接。 (ld是鏈接器的名稱,所以它最有可能編譯好的程序,但需要看到整個makefile來檢查) – Twig 2011-03-07 21:26:42

0

我不認爲你會設法建立你的計劃,如果你沒有所有這些庫安裝(即所有lLibrary沒有l),所以找他們,如果他們不可用,安裝它們。

另外(我希望不要聽起來太明顯),如果你有一些Linux庫(從你的問題來看似乎如此),它們必須爲Mac OS X構建,以便你鏈接它們。

你可以嘗試使用的/usr/lib代替/lib.

祝你好運!

0

根據here,MacOS的共享庫文件夾位於/ Library。因爲/ lib是Linux的共享庫文件夾,因爲/ Library是Mac OS。因爲你的Linux Makefile表示-L/lib,所以我認爲你需要將它改爲-L/Library,因爲/ lib是Linux的共享庫文件夾。