上个月底,我第一次尝试用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_ ...