g++ -lcurl 说找不到,但我可以在 ldconfig -p 中看到它

发布于 2024-10-12 19:58:43 字数 692 浏览 4 评论 0原文

我正在尝试在全新安装的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

意犹 2024-10-19 19:58:43

在链接时,-lcurl 告诉链接器查找 libcurl.so

从那里,库中的 SONAME (libcurl.so.3) 被嵌入到可执行文件中,这就是执行时搜索的文件名。

您有 libcurl.so.3,但可能缺少开发所需的 libcurl.so

你的分布是什么?通常会有第二个包,其中包含开发头文件/库,与运行时位分开。

At link time, -lcurl tells the linker to look for libcurl.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 lacking libcurl.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.

尽揽少女心 2024-10-19 19:58:43

从任何源 /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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文