Makefile问题

时间:2011-03-07 21:07:28

标签: makefile terminal

我正在尝试编写一个我为课堂编写的小程序。他们给了我们一个Makefile来使用,但它是在考虑到Linux的情况下创建的,而且我有Mac OS。现在当我运行make testFills时,我收到了这个错误:

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文件夹,所以我不知道为什么它说不能找到它。实际上它在上面的列表中找不到任何过去的东西。我是命令行编程的新手,所以我不确定这可能是什么意思或我如何解决它。有什么想法吗?

5 个答案:

答案 0 :(得分:1)

它在第5行

  

-lbz2 -L / lib -lrsvg-2

你可能没有/ lib目录,它应该只是-Llib。

/ lib表示它是您计算机的根目录,而不是makefile所在的文件夹。

答案 1 :(得分:1)

您可能只需要使用-L选项指示库“libtiff.a”路径。 例如,如果“libtiff.a”位于makefile的父文件夹中的lib目录中:

-L../lib/ -ltiff 

会做的。

有关详细信息,请参阅 -L解释在这里: http://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/Directory-Options.html

和 这里解释一下 http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html

答案 2 :(得分:0)

看起来像编译器(gcc?)安装的配置问题。我在gcc的错误安装中看到了类似的错误。请尝试实际编译一个小应用程序。

答案 3 :(得分:0)

如果您没有安装所有这些库(即没有lLibrary的所有l),我认为您不会设法构建您的程序,所以请查找它们,如果它们不是不可用,安装它们。

另外(我希望听起来不太明显),如果给你一些Linux的库(所以看起来似乎是你的问题),它们必须是为Mac OS X构建的,以便你链接它们。

您可以尝试使用/usr/lib代替/lib.

祝你好运!

答案 4 :(得分:0)

根据here,MacOS的共享库文件夹位于/ Library。

由于您的Linux Makefile说-L / lib,我认为您需要将其更改为-L / Library,因为/ lib是Linux的共享库文件夹,因为/ Library是Mac OS。