gpt4 book ai didi

c++ - 如何在 linux 中将 libcurl 链接到我的 c++ 程序?

转载 作者:IT老高 更新时间:2023-10-28 12:49:48 25 4
gpt4 key购买 nike

我需要在我的 ubuntu 机器上编写的一个软件中使用 libcurl。我正在使用 Eclipse 编写和编译所有软件。当我将 libcurl 文件与 .cpp 文件放在同一文件夹中,并将 curl.h 文件包含在 header 中时,当我尝试编译程序时,出现以下错误:

Building target: sms
Invoking: GCC C++ Linker
g++ -o"sms" ./src/sms.o
./src/sms.o: In function `main':
/home/geekman/workspace/sms/Debug/../src/sms.cpp:38: undefined reference to `curl_easy_init'
/home/geekman/workspace/sms/Debug/../src/sms.cpp:42: undefined reference to `curl_easy_setopt'
/home/geekman/workspace/sms/Debug/../src/sms.cpp:44: undefined reference to `curl_easy_setopt'
/home/geekman/workspace/sms/Debug/../src/sms.cpp:46: undefined reference to `curl_easy_perform'
/home/geekman/workspace/sms/Debug/../src/sms.cpp:47: undefined reference to `curl_easy_cleanup'
collect2: ld returned 1 exit status
make: *** [sms] Error 1

我从 libcurl 中获取了 include 文件夹的内容,并将它们放在与 .cpp 文件相同的文件夹中。然后在 .cpp 文件的标题中,我输入:

#include <curl/curl.h>

我也试过了:

#include "curl/curl.h"

对这个问题有什么想法吗?谢谢。

最佳答案

你的头文件包含就好了;您的问题发生在链接步骤。为了链接 libcurl,您需要添加 -lcurl 命令行选项,假设它安装在标准目录中:

g++ -o sms ./src/sms.o -lcurl

如果没有安装在标准目录下,还需要添加-L/path/to/libcurl,例如类似:

# Assuming that /home/geekman/workspace/libcurl is where libcurl.a is located
g++ -o sms ./src/sms.o -L/home/geekman/workspace/libcurl -lcurl

另请注意,-lcurl 选项必须出现在您要链接的目标文件列表之后,否则将无法正确链接。

关于c++ - 如何在 linux 中将 libcurl 链接到我的 c++ 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6302282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com