我使用的是Ubuntu,我的IDE是Aptana 3.0
尝试构建时出现以下错误。库libfcgi.a
位于/usr/local/lib/
。
在项目属性的Library C ++ Linker部分中,我将/usr/local/lib/
添加到搜索路径和文件/usr/local/lib/libfcgi.a
。
为什么我还没有建立?
**** Build of configuration Debug for project rtb ****
make all
Building target: rtb
Invoking: GCC C++ Linker
g++ -L/usr/local/lib -o"rtb" ./src/rtb.o -l/usr/local/lib/libfcgi.a
/usr/bin/ld: cannot find -l/usr/local/lib/libfcgi.a
collect2: ld returned 1 exit status
make: *** [rtb] Error 1
答案 0 :(得分:3)
我认为这可能是你想要的;
g++ -L/usr/local/lib -o "rtb" ./src/rtb.o -lfcgi
-l<值GT;将自动查找所有使用-L列出的文件夹,查找名为lib< value> .a或lib< value> .so的库,您只需要'-lfcgi'。
答案 1 :(得分:0)
尝试使用“-lfcgi”
g++ -L/usr/local/lib -o"rtb" ./src/rtb.o -lfcgi
答案 2 :(得分:0)
你的链接器标志是错误的,它需要是-lfcgi
,而不是带有“lib”前缀和.a后缀的整个路径。
您可以手动更改,也可以在Apatana中更改。要做到这一点,你不必给他两次完全限定的lib路径。 (你已经给了他搜索路径,记得吗?)。通常您可以像这样定义其他库:
cfgi
并且您的IDE会完成其余工作以将其添加到链接器标志!
答案 3 :(得分:0)
你应该做
g++ -o "rtb" ./src/rtb.o -lfcgi
在您的搜索路径中/usr/local/lib/
不的不太可能的情况下,您可以在命令行中添加该路径,如
g++ -L/usr/local/lib -o "rtb" ./src/rtb.o -lfcgi
或在调用编译命令之前将其放在环境变量LIBRARY_PATH
中,例如用bash:
if [ -z "$LIBRARY_PATH" ];
then export LIBRARY_PATH=/usr/local/lib;
else export LIBRARY_PATH="$LIBRARY_PATH":/usr/local/lib;
fi
如果您坚持提供明确的文件名,请省略-l
:
g++ -L/usr/local/lib -o "rtb" ./src/rtb.o /usr/local/lib/libfcgi.a
但是我建议反对,因为它不灵活。如果问题是安装了另一个不兼容的库版本,最好确保在搜索路径中首先出现正确的版本(或者更好,确保错误的版本不在搜索路径中) - 甚至可以从系统中删除它。)
答案 4 :(得分:0)
这是为了所有人的帮助....真的很感激。
这是解决方案。我不得不使用-lfcgi ++而我添加了
g ++ -L / usr / local / include / -lfcgi ++ -o“rtb”./ src / tb.o
以上是aptanta控制台的输出。我试过-lfcgi而且没用。谷歌搜索导致使用-lfcgi ++。