Как получить CMake для установки сопутствующих файлов PDB, необходимых для отладки DLL файлов Visual Studio и EXE файлов?
Как получить CMake для установки файлов PDB для целей
Ответ 1
Я боролся некоторое время, пытаясь получить хороший ответ на этот вопрос. Теперь я думаю, что нашел один: используйте команду install file с выражением генератора $<TARGET_PDB_FILE:tgt>
(доступно в CMake 3.1.3 и новее). В частности, команда установки ниже, кажется, работает. Команда скопирует целевой файл pdb $ {PROJECT_NAME} в целевой каталог bin установки.
install(FILES $<TARGET_PDB_FILE:${PROJECT_NAME}> DESTINATION bin OPTIONAL)
Команда установит файл pdb для каждой конфигурации, которая генерирует файл pdb. При использовании OPTIONAL
команда install не выдаст ошибку, если исходный файл pdb не существует. Эта команда предназначена для использования в целях, созданных с помощью add_library(${PROJECT_NAME}...)
или add_executable(${PROJECT_NAME}...)
.
Это лучший ответ, который я нашел. Пожалуйста, дайте мне знать, если есть лучший. Я нашел трудную для понимания документацию по TARGET_PDB_FILE
генератора TARGET_PDB_FILE в разделе "Информационные выражения" документации по выражениям cmake-generator-expression.
Ответ 2
Кроме того, если вам не нужен отдельный файл PDB, вы можете использовать функцию " Generate Debug Information optimized for sharing and publishing (/DEBUG:FULL)
для счастливой отладки. Для этого вам нужно установить LINK_FLAGS
для целевого ${PROJECT_NAME}
:
set_target_properties(${PROJECT_NAME} PROPERTIES
LINK_FLAGS_DEBUG "-DEBUG:FULL"
)
Или, если по какой-то причине вы не можете редактировать CMakeLists.txt
вы можете установить параметр cmake
: