CMake - 共享库 - 缺少 IDE 支持

问题描述 投票:0回答:1

我正在研究一个项目结构,发布于:

https://github.com/veritacodex/IB.Cpp.Api.Client

您可能已经见过类似的结构:

  • 有一个库文件夹,我正在尝试构建该库。
  • 我在其中保留任何外部 .so 的第三方文件夹
  • playground/examples 文件夹,我在其中向用户展示如何使用该库。

我设法让所有 CMakeLists.txt 文件正常工作。它可以很好地编译和制作库。

当我尝试使用属于共享第三方库一部分的任何对象时,我的问题就出现了。 IDE 无法解析任何符号

我尝试使用 Clion 和 VSCode,但无法获得任何智能感知支持。我链接外部库的方式是否遗漏了任何内容?

这些是链接第三方库的行:

INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/Library/inc)
SET(BUILD_SHARED_LIBS YES)

ADD_LIBRARY(IbApiClient IbClient.cpp)
TARGET_LINK_DIRECTORIES(IbApiClient PUBLIC ${CMAKE_SOURCE_DIR}/Third-Party/tws-api)
TARGET_LINK_LIBRARIES(IbApiClient PUBLIC libTwsSocketClient.so)
c++ cmake libraries clion shared
1个回答
0
投票

我找到了解决方案。

让 IDE 识别标头文件夹的一种方法是使用以下内容:

FILE(GLOB TWSAPI_SRC CONFIGURE_DEPENDS
        "${TWSAPI}/*.h"
        "${TWSAPI}/*.cpp"
)

ADD_LIBRARY(IbApiClient IbClient.cpp ${TWSAPI_SRC})

地点:

  • TWSAPI_SRC 只是我给变量起的名称。
  • TWSAPI 是共享库源所在的文件夹。

完整文件位于 https://github.com/veritacodex/IB.Cpp.Api.Client/blob/main/Library/src/CMakeLists.txt

如果这样设置,Clion 可以解析所有符号。

© www.soinside.com 2019 - 2024. All rights reserved.