0

经过数小时的互联网研究以寻求解决方案(我知道有一些类似的问题,但没有任何帮助),我差点认输,因此非常感谢您的帮助

初步:我想将 C99 库open62541用于我自己的 C++ 项目。我为 PubSub 使用了足够的构建选项,因为这是我最感兴趣的。我还将安装路径配置为/home/user/install/open62541.

问题描述:起初我能够使用这个CMakeLists.txt构建所有内容。但目前我尝试将 open62541 的订阅功能添加到项目中,但 CMake 拒绝将库链接到项目中,因为它应该:

  • 我将此示例代码从教程复制到项目中,add_executable(subscriber ${CMAKE_CURRENT_SOURCE_DIR}/tutorial_pubsub_subscribe.cpp)并添加target_link_libraries(subscriber PUBLIC open62541)到我的CMakeLists.txt中。
  • CMake 抱怨以下问题:undefined reference to 'UA_PubSubConnection_regist'
  • 然后我去我的安装路径的 lib 文件夹找到libopen62541.so
  • 使用 nm 命令检查共享对象nm libopen62541.so | grep UA_PubSubConnection_regist
  • nm 返回 "t",

所以我想 open62541 的构建不能是链接错误的原因。

4

0 回答 0