g ++无法链接curl lib文件

时间:2017-08-08 13:45:52

标签: c++ linux curl linker

我在使用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方法。我在cpp文件中有#include <curl/curl.h>

任何想法?
感谢

2 个答案:

答案 0 :(得分:2)

根据curl的报告,使用默认安装时,您将gcc-lcurl指定为curl-config --libs gcc。要在VCLinux生成的curl命令行上传递此内容,请将-l添加到链接器下的 附加库依赖项行 / 输入。请注意,您只输入 curl ,VCLinux提供libcurl.a,gcc链接器将其扩展为实际文件名libcurl.so(如果您要链接,则为/usr/lib共享库。)

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

curl与%24(pkg-config --cflags libcurl)兼容,因此,作为直接输入路径和库名称的替代方法,您可以在 C ++中指定%24(pkg-config --libs libcurl) / 所有选项< / em> / 链接器中的其他选项%24 / 所有选项 / 其他选项。 请注意$是编码的saveAsSpreadsheet(),因为否则Visual Studio会尝试(并且失败)将字符串解释为宏。

答案 1 :(得分:0)

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