CMake 项目中 CMakelist.txt 应该怎么写,才能够实现跨平台编译?

这是我写的一个 CMake 项目的模板仓库:https://github.com/hominsu/cmake-project-layout/tree/main

包括了:

  • Linux 下项目的编译
  • Windows 下项目的编译
  • MacOS 下项目的编译
  • Windows 下 vcpkg 的使用,分别适配 Mingw 和 MSVC
  • 设定 MSVC 的 Runtime Library (主要解决导入的库使用的是 libcmt 导致与 MSVC 默认值冲突的问题,例如 openssl)

请不要将这个仓库作为一个真正的模版来使用,我希望的是你能从中学习到 CMake 的一些语法和技巧,以及一些工程、架构设计思想,然后自己尝试来写。

👷 持续更新中

等不及了可以去仓库提 issue 催我 😤