簡體   English   中英

使用CMAKE如何停止“Debug”和“Release”子目錄

[英]Using CMAKE how to stop the “Debug” and “Release” subdirectories

我已經指定了我的二進制輸出目錄:

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)

不幸的是,Visual Studio添加了DebugRelease目錄。

我不想要這些。

CMAKE文檔說:

除非使用生成器表達式,否則多配置生成器(VS,Xcode)會將每個配置子目錄附加到指定的目錄。

但我不確定這意味着什么。

如何讓Visual Studio 添加這些目錄?

要直接回答您的問題:使用生成器表達式,如文檔所示。 這是一個例子:

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY $<1:${CMAKE_SOURCE_DIR}/bin>)

$<1:xxx>是一個擴展到xxx的genex,這意味着最終值將是您想要的值。

但是,請注意,這意味着在構建時,當前構建的配置中的二進制文件將覆蓋先前構建中的二進制文件,即使這是不同的配置。 你確定要的嗎?


作為旁注,您指定的路徑是相對於目錄的。 這聽起來也很不尋常,很容易導致問題。 例如,如果您從同一個源生成多個構建系統(到不同的二進制目錄),那么它們的.exe文件將存儲在同一個位置,最后一個構建將覆蓋任何以前的。 這聽起來像一堆堅固的蠕蟲和未來的維護噩夢。

雖然我不知道您的設置細節,但我建議您重新考慮在源代碼樹中存儲構建工件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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