CMake 配置 CMakeLists.txt
Posted
技术标签:
【中文标题】CMake 配置 CMakeLists.txt【英文标题】:CMake configuration CMakeLists.txt 【发布时间】:2021-05-07 18:39:09 【问题描述】:我想为一个项目设置 cmake,但我不知道如何处理这个架构:
src/
control/
file.cpp
file.h
factory/
file.cpp
file.h
model/
file1.cpp
file1.h
...
file9.cpp
file9.h
ui/
file.cpp
file.h
main.cpp
我想对于有使用 cmake 经验的人来说似乎很容易。我不知道在不同的 CMakeLists.txt 上写什么来链接包。感谢您的帮助。
【问题讨论】:
你的结构看起来不错。如果涉及到库,我通常会在每个文件夹中放置一个 CMakeLists.txt,以便每个 CMakeLists.txt 处理自己的文件夹。 您想将每个文件夹作为一个单独的项目处理吗?没有必要,所以最后你只会有一个 CMakeLists.txt。 @drescherjm 感谢您的评论。当一个文件夹中有多个库(例如模型中)时如何编写CMakeLists.txt? 没有什么能阻止您在 CMakeLists.txt 中拥有超过 1 个 add_library()。正如我上面所说,我不会那样做,但这是个人喜好。没有正确或错误的方法。 @Attis 感谢您的评论。不是特别。我只是想让它工作:) 【参考方案1】:我会按照这些思路使用一些东西:
cmake_minimum_required(VERSION 3.12)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
project(test1)
find_package(OpenSSL REQUIRED)
find_package(Qt5 COMPONENTS Core REQUIRED)
add_executable($PROJECT_NAME main.cpp
src/control/file.h
src/control/file.cpp
src/factory/file.h
src/factory/file.cpp
# ...
)
target_link_libraries($PROJECT_NAME OpenSSL::SSL Qt5::Core)
此 CMakeLists.txt 假定您至少拥有 CMake 版本 3.12。该示例还向您展示了如何获取 OpenSsl 和 Qt 等外部依赖项。
【讨论】:
以上是关于CMake 配置 CMakeLists.txt的主要内容,如果未能解决你的问题,请参考以下文章