我在使用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>
。
任何想法?
感谢
答案 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 ++目录。除此之外,你必须通过使用附近的一些其他菜单告诉它在哪里搜索。