G ++不能链接卷曲的lib文件G ++不能链接卷曲的lib文件(g++ can't lin

2019-05-12 13:20发布

我在与获得G ++的卷曲的lib文件链接的一些问题。 我使用Visual Studio 2017年与Linux开发插件和Ubuntu服务器17.04。

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

然后我试图从网站和使用使源并进行安装。 curl-config --libs给了我不同的输出-L/usr/local/lib -lcurl 。 我改变了选项链接,这仍然没有奏效。

该连接器输出说大量的“未定义的引用”,然后卷曲的方法。 我#include <curl/curl.h>在cpp文件。

有任何想法吗?
谢谢

Answer 1:

随着默认installion你会指定curlgcc-lcurl ,正如报道curl-config --libs 。 并且通过这对上gcc通过VCLinux生成的命令行中,添加curl 额外 下的VS项目属性链接器 / 输入 库的依赖线。 请注意,您仅输入卷曲 ,VCLinux供应-l和gcc的链接它扩展到的实际文件名libcurl.a (或libcurl.so如果你链接共享库)。

你通常没有指定库搜索路径,因为/usr/lib等,都自动成为图书馆搜索路径。 在Debian 9例如, libcurl.a是在/usr/lib/i386-linux-gnu 。 但是,如果你安装卷曲的地方不规范,路径添加到下链接器 / 一般 附加库目录 。 如果你是从你的Linux发行版上安装卷曲,记得要安装开发文件为好; 在Debian这是包libcurl4-gnutls-dev

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



Answer 2:

是不是因为之后没有小时。 在包括哪些内容? 除此之外,Visual Studio中还需要知道你的头文件和库搜索路径。 它可以搜索生成输出或者一些它的缺省目录这是VC ++目录。 除此之外,你必须告诉它在哪里搜索,通过使用一些附近的其他菜单。



文章来源: g++ can't link curl lib files