我正在研究一个项目结构,发布于:
https://github.com/veritacodex/IB.Cpp.Api.Client
您可能已经见过类似的结构:
我设法让所有 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)
我找到了解决方案。
让 IDE 识别标头文件夹的一种方法是使用以下内容:
FILE(GLOB TWSAPI_SRC CONFIGURE_DEPENDS
"${TWSAPI}/*.h"
"${TWSAPI}/*.cpp"
)
ADD_LIBRARY(IbApiClient IbClient.cpp ${TWSAPI_SRC})
地点:
完整文件位于 https://github.com/veritacodex/IB.Cpp.Api.Client/blob/main/Library/src/CMakeLists.txt
如果这样设置,Clion 可以解析所有符号。