一尘不染

g ++无法链接curl lib文件

linux

我在使g ++链接curl lib文件时遇到一些问题。我正在将Visual Studio 2017与linux dev插件和Ubuntu Server
17.04一起使用。

curl-config --libs给出了输出-Lcurl,我尝试将其添加到中的链接器选项Project settings > Linker > Command Line > Additional options。我还将--cflags输出添加到了编译选项。这没有解决问题。

然后,我尝试从网站上获取源代码,并使用了make和make install。curl-config --libs给了我不同的输出-L/usr/local/lib -lcurl。我更改了链接器中的选项,但仍然无法正常工作。

链接器输出显示很多“未定义的引用”,然后显示curl方法。我#include <curl/curl.h>在cpp文件中。

有任何想法吗?
谢谢


阅读 235

收藏
2020-06-03

共1个答案

一尘不染

随着默认installion你会指定curlgcc-lcurl,如报道curl-config --libs。并将其传递gcc给VCLinux生成的命令行,将其添加curl到 _ 额外 VS项目属性中“ _链接器 / 输入”
下的“ 库依赖关系” 行。请注意,您只输入 curl
,VCLinux提供了-l,并且gcc链接器将其扩展为的实际文件名libcurl.a(或者libcurl.so如果您要链接共享库)。

通常不需要指定库搜索路径,因为/usr/lib等自动出现在库搜索路径上。以Debian
9为例,libcurl.a位于中/usr/lib/i386-linux-gnu。但是,如果在非标准位置安装curl,请在 Linker /
General 下将路径添加到 Additional Library Directories
。如果要从Linux发行版安装curl,请记住也要安装开发文件。在Debian上,这是软件包。 libcurl4-gnutls-dev

卷曲是兼容pkg-config的话,作为替代直接输入路径和库的名称,则可以指定%24(pkg-config --cflags libcurl)
C ++ / 全部选项 / 其他选项%24(pkg-config --libs libcurl)链接器 / 全部选项 /
附加选项 。请注意,它%24是编码的,$因为否则Visual Studio会尝试(失败)将字符串解释为宏。

2020-06-03