Я хочу, чтобы связать различные библиотеки для режима Debug/Release, в CMakeLists.txt, я попытался это первый:CMake установить синтаксис команды для статических библиотек
set(basic_lib
debug
ws2_32 cryptlibd
optimized
ws2_32 cryptlib
)
Это не работает, он всегда ищет ws2_32 + cryptlibd, даже в режиме Release, что вызывает ошибку связывания. Снова я попробовал:
set(basic_lib
optimized <---------- put optimized first
ws2_32 cryptlib
debug
ws2_32 cryptlibd
)
теперь она всегда ссылается на ws2_32 + cryptlib, как в режиме/Debug Release.
Похоже, что cmake ссылается на определенную библиотеку.
Тогда я попытался простой:
set(basic_lib
debug
cryptlibd
optimized
cryptlib
)
только один Lib связать, на этот раз все прекрасно работает, почему?
Я не думаю, что замечание о DEBUG_CONFIGURATIONS истинно. Однако целевые свойства MAP_IMPORTED_CONFIG_ * потребляются. – steveire
@steveire _ Отладочное ключевое слово соответствует конфигурации отладки (или конфигурациям, названным в глобальном свойстве DEBUG_CONFIGURATIONS, если оно установлено) _ Из документов «target_link_libraries», указанных выше. Обратите внимание, что по умолчанию 'DEBUG_CONFIGURATIONS' пуст, и вы должны установить его перед первым вызовом' target_link_libraries', чтобы иметь какой-либо эффект. В целом, это довольно хрупкий механизм по сравнению с генераторными выражениями. – ComicSansMS
А, я перевернул смысл вашего комментария, извините :). Я думал, вы подразумеваете, что «DEBUG_CONFIGURATIONS» применяется к выражениям генератора. – steveire