5

我没有使用 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。

4

1 回答 1

12

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

这正是你必须做的:)

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

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

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

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

如果您正在构建一个名为 的可执行文件MyExecutable,则必须有一行

add_executable(MyExecutable ...)

在你的CMakeLists.txt.

在这一行之后,尝试添加

target_link_libraries(MyExecutable curlpp)

我你已经有一条目标target_link_libraries()线MyExecutable,只需添加curlpp到其他库。

于 2013-03-27T12:21:30.550 回答