Невозможно связать libclang с cmake на VS2017 - PullRequest
0 голосов
/ 20 сентября 2019

Некоторое время назад я написал программу генерации кода для использования в моем игровом движке 3D.Я добавил цель в свои файлы cmake, связал с ней libclang, так как использую ее для анализа кода, и все работает нормально.Недавно я добавил в свой проект еще одну зависимость, которая, в свою очередь, зависит от SDL2.После долгой борьбы мне наконец удалось заставить это работать, но внезапно проект генерации кода больше не компилировался, хотя я буквально не касался этого в течение нескольких месяцев.Он не может связать и начинает выдавать ошибки о неопределенных символах, хотя я четко указываю .lib-файл для ссылки и указываю правильный путь.Файлы Cmake для моего проекта здесь .

Я использую Cmake GUI для Windows, генератор VS2017 (x64), набор инструментов платформы LLVM.

Любые идеи по этому вопросу приветствуются.

Обновление: точные ошибки, которые я получаю, просто

1>C:\Program Files (x86)\LLVM\bin\lld-link.exe : error : undefined symbol: __imp_clang_getTranslationUnitCursor
1>>>> referenced by C:\Users\michi_000\Desktop\C++\SaturnEngine\CodeGen\Serialization\main.cpp:128
1>>>>               SerializationCodeGen.dir\Editor\main.obj:(?get_cursor@TranslationUnit@@QEAA?AUCXCursor@@XZ)

Для каждой функции libclang, которую я вызываю.

1 Ответ

0 голосов
/ 21 сентября 2019

Проблема была решена.Проблема состояла в том, что моя установка clang не обеспечивала библиотеку импорта для clang, и я вместо этого связывал статическую библиотеку.Заголовки ожидали, что библиотека импорта вызвала сбой.Я сгенерировал библиотеку импорта из dll, и теперь она работает нормально.

...