编译Celero演示代码遇CMake报错:无project()命令及编译器问题
构建Celero演示程序的正确步骤
1. 不要单独在DemoSimple目录执行CMake
DemoSimple下的CMakeLists.txt是子项目配置,依赖根目录的Celero核心库配置,直接在该目录跑CMake会缺失project定义、依赖路径等关键信息,这就是你遇到"无project()命令"错误的原因。
2. 先确保编译器配置正确
你提到用GCC,大概率是Windows下的MinGW/GCC套件,需要先让CMake正确识别到编译器:
- 打开对应终端(比如MinGW命令行、配置了环境变量的CMD/PowerShell),执行
gcc --version,确保能正常返回版本信息,说明编译器已加入系统环境变量。 - 不要手动在CMakeLists里硬编码编译器路径,CMake会自动从环境变量查找,硬编码反而容易导致路径不匹配或依赖缺失。
3. 根目录下的标准CMake构建流程
建议用Out-of-Source Build(避免污染源码目录),在Celero项目根目录执行以下步骤:
- 创建并进入build目录:
mkdir build && cd build - 运行CMake指定正确的生成器(如果CMake未自动识别GCC):
针对MinGW GCC:
若是MSYS2环境的GCC,可改用cmake -G "MinGW Makefiles" .."MSYS Makefiles"生成器。 - 编译项目:
MSYS环境直接执行mingw32-makemake即可。
4. 解决kernel32.lib链接错误
这个错误通常是CMake误将编译器识别为MSVC,或是MinGW环境配置不完整导致:
- 确保执行CMake时指定了正确的生成器(如上述的
MinGW Makefiles),不要用默认的Visual Studio生成器。 - 检查MinGW套件是否完整,确保安装了对应架构的完整工具链(比如64位的
mingw-w64-x86_64-toolchain),MinGW下对应kernel32.lib的文件是libkernel32.a,完整工具链会包含该文件。
5. 运行DemoSimple程序
编译完成后,DemoSimple的可执行文件会在build/DemoSimple目录下,直接运行即可:
./DemoSimple.exe
内容的提问来源于stack exchange,提问作者Parth Sharma
相关产品推荐
相关产品推荐

