当前位置: 首页 > 面试题库 >

g ++无法链接curl lib文件

邹时铭
2023-03-14
问题内容

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

有任何想法吗?
谢谢


问题答案:

随着默认installion你会指定curlgcc-lcurl,如报道curl-config --libs。并将其传递gcc给VCLinux生成的命令行,将其添加curl到 _ 额外 VS项目属性中“ _链接器 / 输入”
下的“ 库依赖关系” 行。请注意,您只输入 curl
,VCLinux提供了-l,并且gcc链接器将其扩展为的实际文件名libcurl.a(或者libcurl.so如果您要链接共享库)。

通常不需要指定库搜索路径,因为/usr/lib等自动出现在库搜索路径上。以Debian
9为例,libcurl.a位于中/usr/lib/i386-linux-gnu。但是,如果在非标准位置安装curl,请在 Linker /
General 下将路径添加到 Additional Library Directories
。如果要从Linux发行版安装curl,请记住也要安装开发文件。在Debian上,这是软件包。 libcurl4-gnutls-dev

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



 类似资料:
  • [Dean@dell_xps_13~]$C++--版本C++(GCC)6.2.1 201 60830版权所有(C)2016 Free Software Foundation,Inc.这是自由软件;有关复制条件,请参阅源代码。没有保修;甚至不是为了适销性或适合某一特定用途。 代码在test.cc文件中 首先将其编译为对象文件: 这可以运行并打印出一些消息: 现在使用-static选项获取错误 C++

  • 问题内容: 我在运行64位Ubuntu 12.04的桌面上下载并构建了gcc 4.8.1。我像文档建议一样使用命令从源代码中构建它 它似乎通过了所有测试,我将所有内容都安装到了带有后缀-4.8的主目录中,以区别于版本4.6.3的系统gcc。 不幸的是,当我使用g -4.8编译c 程序时,它链接到系统libc和libstdc ,而不是从gcc-4.8.1编译的较新的程序。我下载并构建了gcc 4.8

  • 我对在ubuntu中使用PHP unlink()删除文件感到沮丧。 我创建了一个非常简单的模拟,如下所示: 使用766权限在/var/www下创建名为“files”的文件夹 “image.png”仍然存在于“files”目录中 这里是delete.php的php脚本: 我还尝试了以下脚本: 但仍然无法删除该文件。

  • 问题内容: 我正在尝试让一个库在我的c 项目中工作,并且对于不习惯c 的人没有明确的说明 以下链接是我最近来的 它指出以下 还有以下线程指出以下内容 现在从我可以看到的命令是+ ,例如我的文件名是,这是正确的,有人可以澄清一下吗 我目前正在使用以下命令来编译我的文件,但是想包含一个名为.so的文件,例如 问题答案: 现在从我所看到的命令,例如我的文件名是这将是 不,那是不正确的。应该是,即您用来将

  • 我似乎不能让写一个回顾按钮链接到我的一个html文件/页面。它可以链接到任何其他的。这是一个奇怪的问题,我似乎无法解决。它不会链接到write的文件是WriteReview.html。 null null

  • 问题内容: 我正在尝试构建一个openssl简单程序。这是完整的代码: 我尝试使用以下命令进行编译: 我得到这个: 我在Ubuntu 10.04下。我怎样才能使它工作? 问题答案: 您可能正在尝试静态链接,但是该选项并正在寻找要动态链接的文件。要静态链接到特定库,只需在所有源文件之后在编译器命令行上指定文件即可。 例如,