我需要在我在ubuntu机器上编写的软件中使用libcurl。我正在使用Eclipse编写和编译所有的软件。当我将libcurl文件与.cpp文件放在同一文件夹中,并将curl.h文件包含在头文件中时,当我尝试编译程序时,会出现以下错误:
构建目标:sms
调用:GCC C++链接器
g++-o“sms”。/src/sms.o
/src/sms.o:在函数“main”中:
/home/geekman/workspace/sms/Debug/。/src/sms.cpp:38:对“curl\u easy\u init”的未定义引用
/home/geekman/workspace/sms/Debug/。/src/sms.cpp:42:对“curl\u easy\u setopt”的未定义引用
/home/geekman/workspace/sms/Debug/。/src/sms.cpp:44:对“curl\u easy\u setopt”的未定义引用
/home/geekman/workspace/sms/Debug/。/src/sms.cpp:46:对“curl\u easy\u perform”的未定义引用
/home/geekman/workspace/sms/Debug/。/src/sms.cpp:47:对“curl\u easy\u cleanup”的未定义引用
collect2:ld返回了1个退出状态
make:**[sms]错误1
我从libcurl获取include文件夹的内容,并将它们放在与.cpp文件相同的文件夹中。然后在.cpp文件的标题中,我键入:
#包括<;卷曲/卷曲。h>;
我还尝试:
#包括“curl/curl.h”
对这个问题有什么想法吗?谢谢
你的头文件包很好;您的问题发生在链接步骤。为了链接libcurl,您需要添加-lcurl命令行选项,假设它安装在标准目录中:
g++-osms./src/sms.o-lcurl
如果未安装在标准目录中,还需要添加-L/path/to/libcurl,例如:
#假设/home/geekman/workspace/libcurl是libcurl.a所在的位置
g++-osms./src/sms.o-L/home/geekman/workspace/libcurl-lcurl
还请注意,-lcurl选项必须出现在正在链接的对象文件列表之后,否则它将无法正确链接