如何将libcurl链接到我的linux中的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选项必须显示在链接的对象文件列表之后,否则将无法正确链接。

http://stackoverflow.com/questions/6302282/how-do-i-link-libcurl-to-my-c-program-in-linux

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何将libcurl链接到我的linux中的c程序?