Windows下GCC编译OLLVM

工具:

Cmake、DevCPP。

过程:

1.安装Cmake,并添加到环境变量中;若有安装git工具,需要把git/bin/这个环境变量删掉,如果有的话。

2.安装DevCPP,为什么需要这个?因为它可以省去MinGW相关的安装,这个开发工具自带C、C++编译工具,

以及make程序。 把这个程序的工具也添加到环境变量:

3.配置Cmake。 启动Cmake-gui,设置源码路径,创建输出文件夹,并设置数据路径:

然后后提示设置,设置为MinGW Makefiles,并使用自定义的编译器,

C的编译器路径:/Dev-Cpp\MinGW64\bin\gcc.exe

C++编译器路径:/Dev-Cpp\MinGW64\bin\g++.exe

另一个不用配置。

然后在search中输入 CMAKE_MAKE_PROGRAM ,设置它的值为/Dev-Cpp\MinGW64\bin\mingw32-make.exe

search中输入test,把所有test选项的 √ 都去掉。

点击Add Entry ,输入DLLVM_INCLUDE , 类型选择 string, 值填写OFF 。

点击Add Entry ,输入TESTS , 类型选择 string, 值填写OFF 。

4. 点击configure , 完成后点击generate。

5.进入到配置的build目录,在这个目录启动cmd,开始编译:

mingw32-make.exe -j4

 

遇到两个错误:

I.

P:\ollvm\ollvm\lib\Support\Chrono.cpp:29:15: error: '::localtime_s' has not been declared
   int Error = ::localtime_s(&Storage, &OurTime);

解决:

把\ollvm\lib\Support\Chrono.cpp 对应的那个代码注释。

II.

undefined reference to  SHGetKnownFolderPath

把 P:\ollvm\ollvm\lib\Support\Windows\Path.inc 文件中的SHGetKnownFolderPath函数调用注释掉。

其他问题:

clang找不到Include 目录,编写一个helloworld程序都找不到stdio.h ……

各种方法都试了,比如下载LLVM,发现include下没有stdio.h;

下载MinGW,设置Windows环境变量Include为对应的MinGW的include目录也没用……

后来用clang -v 输出编译过程,发现了它硬编码的头文件搜索路径……

再后来,思考下,clang --help 查看了帮助,发现了-I 选项,于是乎:

P:\devCPP\Dev-Cpp\MinGW64\bin\ld.exe: cannot find -lgcc_eh
P:\devCPP\Dev-Cpp\MinGW64\bin\ld.exe: cannot find -lgcc_eh
clang.exe: error: linker command failed with exit code 1 (use -v to see invocation)

还是出错……脸黑了……在试了下用clang++编译:

clang++ -mllvm -bcf -I "P:\devCPP\Dev-Cpp\MinGW64\include" -I "P:\devCPP\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include" -I "P:\devCPP\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include" p:\test\test.cpp -o t.exe -v

铛铛砀,混淆后的exe输出了……Oh yeah ,终于有了一款Windows下的混淆编译工具了……Nice……

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值