如何在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
如果未安装在标准目录中,则还需要添加ѭ5,例如就像是:
# Assuming that /home/geekman/workspace/libcurl is where libcurl.a is located
g++ -o sms ./src/sms.o -L/home/geekman/workspace/libcurl -lcurl
还要注意,“ 3”选项必须出现在要链接的目标文件列表之后,否则将无法正确链接。     
        您可以尝试使用
curl-config --libs
。     
        另一个答案(第一个很好)。考虑使用\“ pkg-config --libs libcurl \”返回的输出作为编译器的参数。 例如,   CPPFLAGS =`pkg-config --libs libcurl`      g ++ $ CPPFLAGS myfile.o Pkg-config是开放源代码库与您交流如何链接它们/#include它们的文件的标准方法。     
        任何使用ecplise CDT的人都需要执行以下操作。首先在终端上输入
curl-config --libs
在我的机器上,结果是
-L/usr/lib/i386-linux-gnu -lcurl
然后根据此屏幕截图进行操作,即可进行编译。顺便说一句,不要忘记在代码中添加头文件 因此,您输入不带-L的库文件夹路径和不带-l的库名称,因为链接器将自动添加它们。     
        您必须将库链接到您的程序。使用gcc(以及其他大多数编译器),您可以指定要与
-lname_wo_lib
链接的库,例如
-lcurl
    
        另请参阅GNU GCC手册-链接选项,以获取Adam Rosenfield所说选项的详细说明。有关标准搜索目录,请参阅GCC简介-有关GNU编译器gcc和g ++-设置搜索路径。     

要回复问题请先登录注册