в LLVM у нас есть LLVMContext
, который является единицей хранения, и у нас есть llvm::Module
, где создаются новые символы (функции и типы).
мой вопрос; Какую абстракцию llvm использовать для модулей компиляции? такое Module
? или это на самом деле предназначено для большей области, то есть цель общей библиотеки
Мне кажется, что модуль компиляции должен удовлетворять результат "все или ничего"; либо он компилирует весь свой контент без ошибок, либо имеются ошибки, и его необходимо исправить и собрать заново, прежде чем какие-либо символы в CU будут пригодны для использования. В моей голове, это определение того, что единица компиляции должна представлять
Если модуль является правильной абстракцией для CU, как я могу представить символы в других (правильно скомпилированных) объектах Module
новому модулю, который собирается построить, чтобы он мог их найти? мне нужно добавить объявления или есть какой-то другой быстрый способ для этого?
точка в соответствующей строке в clang
будет очень полезна