如何在Linux中将libcurl链接到我的C ++程序?

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

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选项必须出现 要链接的目标文件列表 之后 ,否则将无法正确链接。

以上是 如何在Linux中将libcurl链接到我的C ++程序? 的全部内容, 来源链接: utcz.com/qa/417277.html

回到顶部