g++ -lcurl 说找不到,但我可以在 ldconfig -p 中看到它
我正在尝试在全新安装的 CentOS 5.5 上构建一些软件,
我的编译行是:
g++ -I ../common/ -I ../readers/ -I ../writers/ -I /home/dcole/software/xerces-c-3.1.1/src -O3 -Wall -fopenmp -fPIC -o chipper chipper.cpp -L/usr/lib64/ ../../lib/IDT.a ../../lib/Linux/libxerces-c.a -lcurl -lidn -ldl -lssl ../../lib/Linux/libfftw3f.a -lpthread -lm
尽管我
[exec] /usr/bin/ld: cannot find -lcurl
[exec] collect2: ld returned 1 exit status
实际上可以看到该库,
$ /sbin/ldconfig -p | grep curl
libcurl.so.3 (libc6,x86-64) => /usr/lib64/libcurl.so.3
libcurl.so.3 (libc6) => /usr/lib/libcurl.so.3
但为什么 g++ 看不到它?
I am trying to build some software on a brand new install of CentOS 5.5
My compile line is :
g++ -I ../common/ -I ../readers/ -I ../writers/ -I /home/dcole/software/xerces-c-3.1.1/src -O3 -Wall -fopenmp -fPIC -o chipper chipper.cpp -L/usr/lib64/ ../../lib/IDT.a ../../lib/Linux/libxerces-c.a -lcurl -lidn -ldl -lssl ../../lib/Linux/libfftw3f.a -lpthread -lm
and I am getting
[exec] /usr/bin/ld: cannot find -lcurl
[exec] collect2: ld returned 1 exit status
Even though I can actually see the lib
$ /sbin/ldconfig -p | grep curl
libcurl.so.3 (libc6,x86-64) => /usr/lib64/libcurl.so.3
libcurl.so.3 (libc6) => /usr/lib/libcurl.so.3
So why cant g++ see it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在链接时,
-lcurl
告诉链接器查找libcurl.so
。从那里,库中的 SONAME (
libcurl.so.3
) 被嵌入到可执行文件中,这就是执行时搜索的文件名。您有
libcurl.so.3
,但可能缺少开发所需的libcurl.so
。你的分布是什么?通常会有第二个包,其中包含开发头文件/库,与运行时位分开。
At link time,
-lcurl
tells the linker to look forlibcurl.so
.From there, the SONAME within the library (
libcurl.so.3
) is embedded into the executable, and that's the filename that is searched for when executing.You have
libcurl.so.3
but may be lackinglibcurl.so
, which is needed for development.What is your distribution? Usually there will be a second package with development headers/libraries, separate from the runtime bits.
从任何源
/usr/lib/libcurl.so
复制文件并将其放置在/usr/lib/
中,然后尝试编译。会成功的。Copy the file from any source
/usr/lib/libcurl.so
and place it in/usr/lib/
, then try to compile. It will work out.