[英]cmake build debug/release, Windows VS macOS
這里典型的 cmake 過程是:
cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg.cmake
cmake --build .
這適用於 Windows 和 macOS。 但后來我注意到它是在調試模式下構建的。
要在 Windows 上選擇構建模式,我做了
cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg.cmake
cmake --build . --config=THEMODE
在 macOS 上我需要做
cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg.cmake -DCMAKE_BUILD_TYPE=THEMODE
cmake --build .
其中 THEMODE 是調試/發布。
我打賭我錯過了什么,不是嗎? Cmake 是關於多平台的,為什么在 Windows/macOS 上選擇構建模式的方式不同?
很可能,您正在為 Windows 上的多配置工具(例如 Visual Studio)和 macOS 上的單配置工具(例如 Makefile)生成構建文件。 這就是為什么您需要指定:
--config <cfg>
在 WindowsCMAKE_BUILD_TYPE
在 macOs 上。 有多配置生成器和其他。 “其他”需要根據CMAKE_BUILD_TYPE
配置明確提供 CMAKE_BUILD_TYPE。 多配置可以生成一次並內置在支持的配置中。 Visual Studio 生成器是一種多配置生成器,但它不是跨平台的。 另一方面,Ninja 是一個多配置生成器和跨平台。
因此,您可以在所有平台上以相同的方式生成和構建它:
cmake -G "Ninja Multi-Config" ..
cmake --build . --config Release
在 Windows 上,您需要在終端(也稱為“開發人員終端”)中使用 VS 設置運行此命令,否則默認情況下不會安裝 Ninja,也不會找到 MSVC 編譯器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.