使用CMake链接项目中的curl

时间:2013-03-27 11:40:18

标签: c++ curl cmake curlpp

我没有使用C ++的经验,只需要对C ++应用程序进行一些小调整就可以执行HTTP请求来验证用户。

Curlpp是一个选项,但是当包含库时,我在构建时遇到错误:

Undefined symbols for architecture x86_64:
  "curlpp::OptionBase::OptionBase(CURLoption)", referenced from:
      app_idomsconnector::RTMPAppProtocolHandler::GetAuthPassword(std::string) in libidomsconnector.a(rtmpappprotocolhandler.cpp.o)
      curlpp::OptionTrait<std::string, (CURLoption)10002>::clone() const in libidomsconnector.a(rtmpappprotocolhandler.cpp.o)

据我所知,我需要在CMAKELists.txt文件中添加/链接库。谁能告诉我究竟需要添加什么? (运行OSX 10.8)正如我所提到的,我没有使用C ++的经验,因为我大部分时间都使用Java。

1 个答案:

答案 0 :(得分:8)

  

据我所知,我需要在CMAKELists.txt文件中添加/链接库。

这正是你要做的事情:)

在C ++中,当您在项目中包含库时,有两种文件可供使用:

  • 头文件,其中声明了符号的名称(如单词列表)
  • 目标文件,代码所在的位置(如实际定义单词的字典)

(这有点简化,但在这里并不重要)

错误消息告诉您不要将目标文件提供给编译器,因此它不知道您在项目中使用的某些单词(类和函数)是什么意思。

如果要构建名为“MyExecutable”的可执行文件,则必须具有类似

的行
  

add_executable(MyExecutable ...)

在你的CMakeLists.txt。

此行后,尝试添加

  

target_link_libraries(MyExecutable curlpp)

我已经有一个带有“MyExecutable”的target_link_libraries行,只需将curlpp添加到其他库中。