【发布时间】:2020-08-13 20:22:14
【问题描述】:
奇怪的是,我能看懂 CMAKE 文档,但在稍微复杂一点的场景中,我还是不知道如何使用它。
我想安装一个 SHARED LIB,让其他人使用它。 我知道我可以使用 CMAKE install 命令安装它,但我的第一个问题是我的代码在不安装库的情况下仍然可以工作。该库已构建并放在 cmake_build_debug 目录下。
我所做的只是:
FILE(GLOB SHAREAD_SRC
${CMAKE_CURRENT_SOURCE_DIR}/Interface/*.cpp
)
set(MY_LIB mylib)
add_library(${MY_LIB} SHARED ${SHAREAD_SRC})
add_executable(run_src src/my_src.cpp ${HEADERS})
target_link_libraries(run_src ${MY_LIB})
我现在可以在我的源代码中包含该库的标头并开始使用它。
我的问题是,
-
在添加库命令中,我是否还应该包含我的库的头文件?目前我只包含构建库的源文件,因为每当我使用库时,我都知道库头的物理位置(因为我制作了这个库),对于那些也想使用这个库的其他人,我会提供他们是标头和构建的 lib 目标,所以无论他们想把它们放在哪里,都没有问题。
-
一些答案谈到安装命令说没有包含在 add_library 中的头文件,Why add header files into ADD_LIBRARY/ADD_EXECUTABLE command in CMake,否则您将不会在 IDE 生成的项目中看到头文件。我的标题在这个项目中,所以我不明白这个问题。为什么我需要安装这个库?如果用户下载了我的头文件并拥有构建的二进制文件,安装的目的是什么?
感谢您的帮助!提前感谢。
【问题讨论】: