前置说明
总感觉visual studio编译无法跨平台,显得很局促,VS虽然编译和调试起来很方便,但是总感觉太重。这篇记录一个CmakeLists.exe模版,让windows下的Cmake变得相对简单一些,不需配置很多的环境变量,又能享受VS优秀的代码编译和编译时期错误提示,事实上,利用从cmake + nmake + Windbg完全可以实现在VS上的绝大数功能,利用轻量的编辑器、VSCode、sublimText即可。
PDB支持
windows上PE文件有显著的特征就是pdb文件,这需要在cmake上进行如下设置。
cmake_minimum_required(VERSION 3.0)
project(test_nmake)
if(WIN32)
# 生成调试信息(pdb)
# 以下内容来自微软官方
# /Zi 选项生成一个单独的 PDB 文件,其中包含供调试器使用的所有符号化调试信息。 调试信息不包含在对象文件或可执行文件中,这使得这些文件小得多。使用 /Zi 不会影响优化。 但是,/Zi 的确表示 /debug。
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
# 生成exe时加入调试信息(pdb)
# /DEBUG 选项将链接对象和库文件中的调试信息放入程序数据库 (PDB) 文件中。 它会在程序的后续生成期