我在使g ++链接curl lib文件时遇到一些问题。我正在将Visual Studio 2017与linux dev插件和Ubuntu Server 17.04一起使用。
curl-config --libs给出了输出-Lcurl,我尝试将其添加到中的链接器选项Project settings > Linker > Command Line > Additional options。我还将--cflags输出添加到了编译选项。这没有解决问题。
curl-config --libs
-Lcurl
Project settings > Linker > Command Line > Additional options
--cflags
然后,我尝试从网站上获取源代码,并使用了make和make install。curl-config --libs给了我不同的输出-L/usr/local/lib -lcurl。我更改了链接器中的选项,但仍然无法正常工作。
-L/usr/local/lib -lcurl
链接器输出显示很多“未定义的引用”,然后显示curl方法。我#include <curl/curl.h>在cpp文件中。
#include <curl/curl.h>
有任何想法吗? 谢谢
随着默认installion你会指定curl库gcc用-lcurl,如报道curl-config --libs。并将其传递gcc给VCLinux生成的命令行,将其添加curl到 _ 额外 VS项目属性中“ _链接器 / 输入” 下的“ 库依赖关系” 行。请注意,您只输入 curl ,VCLinux提供了-l,并且gcc链接器将其扩展为的实际文件名libcurl.a(或者libcurl.so如果您要链接共享库)。
curl
gcc
-lcurl
-l
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
/usr/lib
/usr/lib/i386-linux-gnu
libcurl4-gnutls-dev
卷曲是兼容pkg-config的话,作为替代直接输入路径和库的名称,则可以指定%24(pkg-config --cflags libcurl)在 C ++ / 全部选项 / 其他选项 和%24(pkg-config --libs libcurl)在 链接器 / 全部选项 / 附加选项 。请注意,它%24是编码的,$因为否则Visual Studio会尝试(失败)将字符串解释为宏。
pkg-config
%24(pkg-config --cflags libcurl)
%24(pkg-config --libs libcurl)
%24
$