我在windows上使用eclipse cdt编译了一些库。然而,当我试图在linux下编译它们时,gcc总是给我一个错误/usr/bin/ld: cannot find -lrequestedLib
。我在两个环境之间使用完全相同的构建设置(即我确保添加包含需要链接到的库的目录)。我确信系统也有读取文件的权限。我不知道该怎么办。请帮忙。
编辑:ecplise运行以下命令来构建库:
gcc -I/home/me/lib/ -O3 -Wall -c -fmessage-length=0 -olibToMake.o ../libToMake.c
gcc -L/home/me/lib/ -shared -olibToMake.so libToMake.o -lrequestedLib
编辑2:呈现错误的命令是这两个命令中的第二个,导致输出
/usr/bin/ld: cannot find -lrequestedLib
。编辑3:我已经确认requestedlib.so是x86_64二进制文件。
最佳答案
我在其他地方发现了这个,共享库需要有lib作为ld的前缀才能找到它们。否则,它们需要作为/home/me/lib/requestedLib.so
添加到命令中。
参考:How to link to a shared library without lib* prefix in a different directory?
关于linux - x86_64系统上的Eclipse-CDT无法链接到共享库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8175997/