记录编译OLLVM 4.0 Windows x64

/ 1评 / 0

前几天Ollvm更新了编译器版本到官方最新的4.0.1,这里记录下编译的坑

Linux上编译会比较轻松,这里踩的Windows的坑

编译器选择
MinGW64 for Windows
Cmake 3.9 rc5 for Windows x64
这里注意下套件都是选择的64位版本的,并且要注意最好清除下系统变量中之前配置的变量

官方编译命令:
$ git clone -b llvm-4.0 https://github.com/obfuscator-llvm/obfuscator.git
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ../obfuscator/
$ make -j7

这里cmake如果不指定参数的话,会默认去选择当前电脑里已有的编译器,如果安装了vs的话,会自动去查找vs的编译器

如果打算使用vs编译
cmake -DCMAKE_BUILD_TYPE=Release ../obfuscator/ 会生成32位的依赖版本
cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Release ../obfuscator/
上面这种方法就会生成64位版本的编译环境,不过在测试编译时,32位正常编译通过,64位踩了很多坑,所以还是不建议使用vs编译

使用MinGw编译时,需要加上参数
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release ../obfuscator/
最后再执行make -j7 即可,数字可根据电脑配置进行选择

漫长的等待后就可以看到已经编译完成的clang.exe等文件了

一条回应:“记录编译OLLVM 4.0 Windows x64”

  1. c0zzy说道:

    用MinGW编译遇到
    C:\code\obfuscator\lib\Support\Chrono.cpp: In function ‘tm llvm::getStructTM(llvm::sys::TimePoint)’:
    C:\code\obfuscator\lib\Support\Chrono.cpp:29:15: error: ‘::localtime_s’ has not been declared
    int Error = ::localtime_s(&Storage, &OurTime);
    ^
    lib\Support\CMakeFiles\LLVMSupport.dir\build.make:312: recipe for target ‘lib/Support/CMakeFiles/LLVMSupport.dir/Chrono.cpp.obj’ failed
    mingw32-make.exe[2]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/Chrono.cpp.obj] Error 1
    CMakeFiles\Makefile2:301: recipe for target ‘lib/Support/CMakeFiles/LLVMSupport.dir/all’ failed
    mingw32-make.exe[1]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/all] Error 2
    能提示一下有可能是什么问题吗?有人说要加-std=c11?

发表评论

电子邮件地址不会被公开。 必填项已用*标注