簡體   English   中英

cmake 構建調試/發布,Windows VS macOS

[英]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)生成構建文件。 這就是為什么您需要指定:

有多配置生成器和其他。 “其他”需要根據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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM