我有一些问题,让g ++链接curl lib文件。 我正在使用Visual Studio 2017与Linux开发插件和Ubuntu服务器17.04。
curl-config --libs
给出了curl-config --libs
的输出,我尝试添加到Project settings > Linker > Command Line > Additional options
。 我还添加了--cflags
输出到编译选项。 这并没有解决这个问题。
然后,我尝试从网站的源使用make并进行安装。 curl-config --libs
给了我不同的-L/usr/local/lib -lcurl
。 我改变了链接器中的选项,这仍然没有工作。
链接器输出说很多“未定义的引用”,然后curl方法。 我在cpp文件中有#include <curl/curl.h>
。
有任何想法吗?
谢谢
使用默认安装,您将使用curl-config --libs
报告的-lcurl
将curl
库指定为gcc
。 并且把它传递给VCLinux生成的gcc
命令行,将curl
加入到 额外 链接器 / 输入在VS项目属性中的库依赖项。 请注意,只需输入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
软件包。
curl与pkg-config
兼容,因此,作为直接输入路径和库名称的替代方法,可以在C ++ / All Options / Additional Options和%24(pkg-config --libs libcurl)
%24(pkg-config --cflags libcurl)
中指定%24(pkg-config --cflags libcurl)
%24(pkg-config --libs libcurl)
链接器 / 所有选项 / 附加选项 。 请注意, %24
是一个编码的$
,否则Visual Studio尝试(并失败)将该字符串解释为一个宏。
是因为在那之后没有? 在你的包括? 除此之外,Visual Studio还需要知道您的标题和库的搜索路径。 它可以搜索构建输出或它的一些默认目录,即VC ++目录。 除此之外,你必须告诉它在哪里搜索,通过使用附近的其他菜单。