如何在Visual Studio项目中嵌入LLVM?(不使用CMake)
直接在Visual Studio中嵌入自行编译的LLVM二进制文件
1. 配置项目包含目录
打开你的Visual Studio项目,右键项目→属性→配置属性→C/C++→常规→附加包含目录,添加你编译LLVM时输出目录下的include文件夹路径。
2. 配置库目录
同样在项目属性里,进入配置属性→链接器→常规→附加库目录,添加LLVM编译输出目录下的lib文件夹路径。
3. 添加依赖库
进入配置属性→链接器→输入→附加依赖项,添加需要用到的LLVM库文件:
- 注意Debug版LLVM的库文件名带
d后缀(比如LLVMCored.lib对应Release版的LLVMCore.lib) - 按需选择组件对应的库,比如用核心功能就加
LLVMCore.lib、LLVMSupport.lib,需要IR生成就再加LLVMIRReader.lib;拿不准的话也可以批量添加lib目录下相关的.lib文件,但会增加编译时间。
4. 复制运行时动态库(关键)
如果你的LLVM是动态库模式编译的(默认设置),必须把LLVM输出目录bin文件夹里的.dll文件复制到你的项目输出目录(比如Debug或Release文件夹),不然运行时会提示找不到依赖。
5. 设置预处理器定义
进入配置属性→C/C++→预处理器→预处理器定义,添加LLVM_DEFINITIONS,再根据编译模式补充:
- Debug模式:加
LLVM_ENABLE_ASSERTIONS=1(VS默认已带_DEBUG) - Release模式:无需额外添加(VS默认已带
NDEBUG)
6. 验证配置
写段简单代码测试:
#include "llvm/IR/Module.h" #include "llvm/Support/raw_ostream.h" int main() { llvm::Module* M = new llvm::Module("test_module", llvm::getGlobalContext()); llvm::outs() << *M << "\n"; delete M; return 0; }
编译运行后能正常输出模块信息,就说明配置没问题了。
内容的提问来源于stack exchange,提问作者anom
相关产品推荐
相关产品推荐

