码迷,mamicode.com
首页 > 其他好文 > 详细

VS2010编译LLVM(制作Lib文件)

时间:2015-06-14 09:28:47      阅读:885      评论:0      收藏:0      [点我收藏+]

标签:llvm   vs2010   编译器   



VS2010编译LLVM(制作Lib文件)

搬运自我的百度空间


这里编译一个常用由常用LLVM的库组成的Lib文件,提高引用LLVM的程序的编译速度。

相比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

LLVMMCJIT
LLVMRuntimeDyld

LLVMAsmPrinter

LLVMAsmParser

LLVMMCParser

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

 

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

这样编译,可以生成一个200MLib文件,是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文件即可。不用担心使用200Mlib生成的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文件)

标签:llvm   vs2010   编译器   

原文地址:http://blog.csdn.net/myjisgreat/article/details/46486723

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!