使用 CMake 在项目中链接curl

2024-03-09

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


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

这正是你必须做的:)

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

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

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

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

如果您正在构建一个名为MyExecutable,你必须有一行像

add_executable(MyExecutable ...)

in your CMakeLists.txt.

在此行之后,尝试添加

target_link_libraries(MyExecutable curlpp)

如果您已经有target_link_libraries()线为MyExecutable目标,只需添加curlpp到其他图书馆。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 CMake 在项目中链接curl 的相关文章

随机推荐