В Visual Studio, во время настройки шаг (когда обрабатываются CMakeLists.txt
файлы) тип сборки равен не задан , поэтому нет сборка- Тип -зависимая переменная или свойство могут использоваться напрямую. Вместо этого следует использовать генератор-выражения .
Например, выходной каталог для исполняемого файла или цели библиотеки можно извлечь с помощью выражения генератора $<TARGET_FILE_DIR:tgt>
. Он вернет полный каталог с уже добавленными «Release /» или «Debug /».
Обратите внимание, что выражения генератора могут использоваться, только если их использование явно разрешено в документации. Например, их нельзя использовать в команде message()
.
В качестве альтернативы, вы можете явно установить переменную CMAKE_RUNTIME_OUTPUT_DIRECTORY , поэтому для каждого типа сборки просто добавьте соответствующий подкаталог к нему. Но для извлечения этого подкаталога вам следует снова обратиться к выражениям генератора: $<CONFIG>
.
Технически, можно установить один и тот же выходной каталог для любого типа сборки. Но это не рекомендуется, поскольку файл из одного типа сборки будет перезаписан файлом из другого типа сборки.