Skip to content

Archive

Tag: Clang
上个月底,我第一次尝试用Clang来编译KlayGE,遇到了很多麻烦,而且最终卡在了mangling的bug上。昨天更新了svn上的LLVM和Clang,惊奇地发现那个bug已经被修正了。这么一来,编译dll不再是问题,可以生成正确的binary。 新麻烦1 自己编译出clang 3.5.0的svn版之后,再次试图编译boost。原先boost并不支持Windows版的clang,所以我改了tools下的工具链,加入了clang-win.jam。结果说不认识-mthreads。去掉这个编译选项之后,编译链接通过,能生成boost的dll。但是文件名不对。首先是MinGW的情况下,首选的dll名应该以lib起头。其次,生成的文件名都是boost_*-35-mt-1_55.dll这样的形式,缺了toolset名,正确的应该是libboost_*-clang35-mt-1_ ...
Clang最近越来越火,多个linux版本已经打算用Clang代替GCC作为默认编译器了。去年Clang宣布改进Windows的支持,所以我打算尝试一下用Clang在Windows上编译KlayGE。一来是想用Clang的静态检查工具来减少bug,二来是为以后移植到MacOSX和iOS做准备。 在这个过程中,发现到处是坑,而且最终问题也还没解决。这里把我遇到的麻烦做个总结,希望能抛砖引玉。也希望有经验的朋友能可以帮忙出出主意。 麻烦1:MinGW还是VC Clang 3.4提供了预编译的Windows版下载,下了之后直接安装即可。在VC里可以看到多了LLVM-xxxx的toolset。按说能直接用它编译原有工程,但试一下才发现,很多VC的编译选项clang-cl并不支持。看了帮助发现可以用-Qunused-argu ...