我正在尝试在全新安装的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
即使我实际上可以看到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
为什么g ++不能看到它?
答案 0 :(得分:3)
在链接时,-lcurl
告诉链接器查找libcurl.so
。
从那里,库中的SONAME(libcurl.so.3
)嵌入到可执行文件中,这是执行时搜索的文件名。
您有libcurl.so.3
但可能缺少libcurl.so
,这是开发所需的。
您的发行版是什么?通常会有第二个包含开发头/库的包,与运行时位分开。
答案 1 :(得分:0)
从任何来源/usr/lib/libcurl.so
复制文件并将其放在/usr/lib/
中,然后尝试编译。它会成功。