VS2010编译LLVM(制作Lib文件)

相比codeblocks简单一些。仍然使用Cmake这个工具。如果没有把python加入环境变量,把python26.exepython26.dll python26.zip拷贝到(源文件目录)\utils\llvm-build\下(python 2.X应该都可以)

设置好source code path 和输出的VS工程的路径在whereto build the binaries

在下面的编译选项里添加一项

PYTHON_EXECUTABLE,值为C:\Users\user\Desktop\FFF\llvm-3.4.2.src\utils\llvm-build\python26.exe

之前codeblocks需要设置C/C++的编译器路径,这里我们就不需要了,,cmake一会自动帮我们填好(可能因为VS把自己的路径注册到了系统里)

点configure然后generate,得到VS的工程。。。。。超级巨大

接下来制作一个Lib文件,把LLVM的主要功能放在里面,节约以后编译的时间

打开得到的sln文件,VS把整个LLVM源码加载,其中有几十个子工程,但是我们只需要其中的几个。找到

LLVMCore

LLVMCodeGen

LLVMExecutionEngine

LLVMTarget

LLVMJIT

LLVMScalarOpts

LLVMSupport

LLVMAnalysis

LLVMMC

LLVMX86AsmParser

LLVMX86AsmPrinter

LLVMX86Desc

LLVMX86Info

LLVMX86Utils

LLVMX86CodeGen

LLVMSelectionDAG

LLVMObject

LLVMTransformUtils

LLVMBitWriter

LLVMBitReader

LLVMMCJITLLVMRuntimeDyld

LLVMAsmPrinter

LLVMAsmParser

LLVMMCParser

在工程上右键,生成,在VS解决方案目录/lib/Debug文件夹里可以看到编译好的lib文件

最后合并之。新建一个VS静态库工程,工程上右键,属性,库管理器,常规,附加依赖项填上面这些工程生成的lib文件路径,附加库目录填(VS解决方案目录)/lib/Debug

这样编译,可以生成一个200多M的Lib文件,是LLVM的核心功能,包含了一下这些头文件的所有依赖的类和函数

#include"llvm/Analysis/Passes.h"

#include"llvm/Analysis/Verifier.h"

#include"llvm/ExecutionEngine/ExecutionEngine.h"

#include"llvm/ExecutionEngine/JIT.h"

#include"llvm/IR/DataLayout.h"

#include"llvm/IR/DerivedTypes.h"

#include"llvm/IR/IRBuilder.h"

#include"llvm/IR/LLVMContext.h"

#include"llvm/IR/Module.h"

#include"llvm/PassManager.h"

#include"llvm/Support/TargetSelect.h"

#include"llvm/Transforms/Scalar.h"

使用时include头文件,并且添加刚编译的大lib文件即可。不用担心使用200多M的lib生成的exe会太大,编译时只会把有关的obj添加进来

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMCore.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMCodeGen.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMExecutionEngine.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMTarget.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMJIT.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMScalarOpts.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMSupport.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMAnalysis.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMMC.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMX86AsmParser.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMX86AsmPrinter.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMX86Desc.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMX86Info.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMX86Utils.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMX86CodeGen.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMSelectionDAG.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMObject.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMTransformUtils.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMBitWriter.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMBitReader.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMAsmPrinter.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMAsmParser.lib

C:\Users\user\Desktop\FFF\llvm-3.4.2.src\build3\lib\Debug\LLVMMCParser.lib

我没啥文化,,来求助大家了. 古代的,现在的. 都行

VS2010编译LLVM(制作Lib文件)

相关文章:

你感兴趣的文章:

标签云: