2017-08-08 78 views
0

我在获取g ++链接curl lib文件时遇到了一些问题。我正在使用Visual Studio 2017与Linux开发插件和Ubuntu服务器17.04。g ++无法链接卷曲lib文件

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

然后我尝试了网站的源代码,并使用make和make install。 curl-config --libs给了我一个-L/usr/local/lib -lcurl的不同输出。我改变了链接器中的选项,但仍然无效。

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

任何想法?
谢谢

回答

1

对于缺省安装,您将指定curl库到gcc-lcurl,如curl-config --libs所报告。而通过这个由VCLinux产生的gcc命令行上,在VS项目属性添加curl附加库的依赖线下链接/输入。请注意,您只输入curl,VCLinux提供-l,并且gcc链接器将其扩展为实际文件名libcurl.a(或如果链接共享库,则为libcurl.so)。

您通常不必指定库搜索路径,因为/usr/lib等会自动位于库搜索路径中。以Debian 9为例,libcurl.a/usr/lib/i386-linux-gnu。但是如果你在非标准的地方安装卷曲,添加路径到附加库目录根据链接器/通用。如果您从Linux发行版安装curl,请记住安装开发文件;在Debian上,这是包libcurl4-gnutls-dev

卷曲与pkg-config如此兼容,以替代直接输入路径和库的名称,就可以在指定C++/全部选项/附加选项%24(pkg-config --libs libcurl)%24(pkg-config --cflags libcurl)接头/所有选项/附加选项。 请注意,%24是编码$,因为否则Visual Studio会尝试(并失败)将该字符串解释为宏。

+0

非常感谢,修复它。 – oliverjrose99

0

是因为没有h之后。在你的包括?除此之外,Visual Studio还需要知道头和库的搜索路径。它可以搜索构建输出或它的一些默认目录,即VC++目录。除此之外,您必须通过使用其他附近的菜单来告诉它在哪里搜索。

+0

对不起,这是一个拼写错误。现在修复它。 – oliverjrose99