- 论坛徽章:
- 0
|
本帖最后由 wkx9dragon 于 2011-10-13 14:50 编辑
mingw 是可以的,得看你的mingw是谁的,我试过标准mingw和tdm-mingw,都可以,dragon-mingw就不可以了,可能跟clang 中的某个硬连接有关,不信你看看clang中得的某个配置文件,当年我试过,的修改源文件,最后编译进clang中。
1)下载llvm-2.9.tgz
2)下载clang-2.9.tgz
3)解压llvm到某个目录下
4)解压clang到llvm\tools\ 目录下
5)改名llvm\tools\clang-2.9为 llvm\tools\clang
6)新建一个目录build,最好和llvm并排,或者在llvm目录下。
7)下载cmake,并安装。
8)下载某种mingw(推荐tdm-mingw和标准mingw)
9)在环境变量中设置mingw,如果是tdm-mingw,只要path \mingw\bin;%path%;就可以了,标准mingw好像还得设置include,c_lib等等,详细的忘了,百度,google搜索吧,
10) 在build目录下执行 cmake -G "MinGW Makefiles" llvm目录 (如果是vc,就得“VS2010”等等了)
11)make install
12)这个时候编译的clang使用的时候, 可是离不开mingw或者vc的,因为它要调用mingw或vc的共享库。
clang 在windows里编程,目前还不是很好用当语法分析器还是不错的,等3.0吧。
llvm-3.0马上就要出来了,到时候大家一起讨论。
如果你要下现成的化,看看源代码中的设置路径吧,必需和他一致。 也就是说mingw只能装在c:\目录下,版本号也只能是这里面的,比如4.5.3
在clang\lib\\Frontend\InitHeaderSearch.cpp中
AddPath("c:/mingw/x86_64-w64-mingw32/include",
AddPath("/mingw/include", System, true, false, false);
AddPath("c:/mingw/include", System, true, false, false);
AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.3.4
AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "4.3.2
AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "3.4.4
ase llvm::Triple::MinGW32:
// FIXME: We should be aware of i686-w64-mingw32.
// mingw-w64-20110207
AddMinGW64CXXPaths("c:/mingw/x86_64-w64-mingw32/include/c++/4.5.3");
// mingw-w64-20101129
AddMinGW64CXXPaths("c:/mingw/x86_64-w64-mingw32/include/c++/4.5.2");
AddMinGWCPlusPlusIncludePaths("/mingw/lib/gcc", "mingw32", "4.5.2");
AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.5.0");
AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.4.0");
AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.3.0"); |
|