使用以下 CMakeLists.txt
cmake_minimum_required(VERSION 3.30)
project(usage_example)
add_executable(usage main.cpp)
以及以下命令:
cmake -S . -B build -G Ninja -DCMAKE_C_COMPILER:PATH="%ProgramFiles(x86)%\LLVM\bin\clang.exe" -DCMAKE_CXX_COMPILER:PATH="%ProgramFiles(x86)%\LLVM\bin\clang.exe" -DCMAKE_C_COMPILER_ID="Clang" -DCMAKE_CXX_COMPILER_ID="Clang" -DCMAKE_SYSTEM_NAME="Generic"
cmake --build build
它构建没有问题,但生成的二进制文件不包含exe
文件类型,它只生成build\usage
如果我重命名usage
,usage.exe
它可以正常工作,但为什么需要这个额外的步骤?
您将
CMAKE_SYSTEM_NAME
变量设置为“通用”。根据文档,这意味着也就是说,您告诉 CMake 您的目标系统不是 Windows。因此 CMake 不会
.exe
为您的可执行文件使用扩展名。要为 Windows 构建项目,您可以将
CMAKE_SYSTEM_NAME
变量设置为“Windows”。或者只需保留该变量未设置,这样 CMake 将自动检测您的主机系统并为其构建项目。