2017-01-18 4 views
0

В моей сборке CMake, использующей ниндзя в качестве исходного кода, библиотеки DLL без экспортированных символов всегда повторно связаны, поэтому я использую ключевое слово MODULE с add_library для этих DLL как рекомендуется here и в add_library docs.CMake add_library с использованием ключевого слова MODULE не создает файл PDB

Но теперь эти библиотеки DLL не имеют соответствующих файлов PDB, созданных с ними (или, возможно, они генерируются в каталоге объектов с именем по умолчанию, а не в выходном каталоге с именем библиотеки).

PDB_NAME docs означает, что это относится только к исполняемым и разделяемым библиотекам (без упоминания Модулей):

имени выходного для ... .pdb файл, созданных с помощью линкера для исполняемых или разделяемой библиотеки цель.

Как я могу получить файл PDB, созданный в ожидаемом местоположении, с правильным именем библиотеки MODULE?

+0

Мои альтернативы выглядят как: 1. добавьте флаги для конкретной платформы для создания файлов pdb или 2. используйте тип библиотеки SHARED и добавьте фиктивный экспортированный символ в эти библиотеки, чтобы они создавали файлы LIB. –

ответ

0

Я вернулся к использованию библиотек SHARED и добавил фиктивный символ для экспорта из каждой такой библиотеки. Таким образом, файлы cmake совместимы со всеми другими библиотеками.