挖井

类库大魔王的挖井日记

挖一口属于自己的井


clang for Windows

  这两天在Windows下折腾clang。这东东前端是支持C/C++/Objective-C/Objective-C++,后端一般是用LLVM的。在Mac OS X上貌似用得很好,可以生成OSX和iOS的app,貌似在Linux或FreeBSD上也支持得不错的样子,不过在Windows上就纠结了。
  首先,clang还是依赖gcc的crt和headers的。于是在Windows上基本上是用MinGW套件的。但是同样是MinGW,不同的人都能编译出不同的东西来,版本众多,质量也不同,貌似还是MinGW官方编译的版本最为稳定,MinGW-w64的x64版本貌似就压根编译不了clang。
  众多32位版本的MinGW都可以编译clang,但是,编译出来的clang貌似就是能自举了,真是遗憾,也不知道是不是我哪里弄错了,4.4.0版本是报BFD模块中有个内部错误,4.6.3版本是在链接时报错,4.7.x版本则是编译第一个文件就报命令行参数错误。
  我是在msys中编译的,值得提一下的是,它每次都要做rebuild all才行,incremental build貌似是不行的。还有就是perl中的pod2html.bat在msys中是用不了的,所以在make install时都会报错的。
  最后要注意,编译clang前,需要修改下llvm\tools\clang\lib\Frontend\InitHeaderSearch.cpp中MinGW的头文件搜索路径。最简单的办法是硬编码增加搜索路径,但是这样你的MinGW和clang就只能存放在固定的位置了。我看了一下clang dev去年4月的maillist中一个thread,其他他们就是没找到一个高效低成本的方案来解决这个问题。于是我就自己用了一种quick & dirty的方案。先查找clang所在目录是否有gcc.exe,没有就找PATH环境变量中有没有,再没有就试试各个分区根目录下有没有mingw目录,如果能找到gcc.exe,就运行gcc.exe -v命令,得到target和version,这样就可能得到搜索路径了。自己写了大约200行代码,粘贴到这里了。

本文地址:

https://minidump.info/blog/2012/07/clang-for-windows/

上一篇

辞职了

  今天是在Wicresoft上班的最后一天,中午请share team的所有人去食堂吃了一顿饭,其实食堂也不便宜,原本我打算在华师大的秋实阁请的,但是暑假了华师大食堂都关门了。于是在紫竹一食堂吃了,16个人542块钱。  这次跳槽是出于两个原因,一是经济方面的考虑,对于目前的我来说,跳槽是涨...…

Job 全文阅读
下一篇

第一周

  在新公司上班一周了,过上了坐地铁上下班的日子。以前每天自己开车上下班时,还有点向往那种坐公交地铁上下班的人,觉得可以在路上看到各种各样的人,还可以拿个手机或平板在路上看书。现在这样过了没几天就厌烦了,地铁太挤了,每天上下班一路会挤得浑身大汗,根本没心情看什么书,除了网络小说。  第一周干不...…

Job 全文阅读