我在与获得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文件。
有任何想法吗?
谢谢
随着默认installion你会指定curl
库gcc
与-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中尝试(和失败)来解释字符串作为宏。
是不是因为之后没有小时。 在包括哪些内容? 除此之外,Visual Studio中还需要知道你的头文件和库搜索路径。 它可以搜索生成输出或者一些它的缺省目录这是VC ++目录。 除此之外,你必须告诉它在哪里搜索,通过使用一些附近的其他菜单。