g ++无法链接卷曲lib文件
我在获取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>
。
任何想法?
谢谢
对于缺省安装,您将指定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会尝试(并失败)将该字符串解释为宏。
是因为没有h之后。在你的包括?除此之外,Visual Studio还需要知道头和库的搜索路径。它可以搜索构建输出或它的一些默认目录,即VC++目录。除此之外,您必须通过使用其他附近的菜单来告诉它在哪里搜索。
对不起,这是一个拼写错误。现在修复它。 – oliverjrose99
非常感谢,修复它。 – oliverjrose99