关于Windows下的Clang的编译环境设置

Force武装卫队 发布于 2012/04/04 01:30
阅读 11K+
收藏 0
在Windows下配置LLVM-GCC编译链,可以编译C程序,也可以编译C++程序,但是无法解析C++ STL没有后缀名的头文件,怎么解决?

以下是问题补充:

@Force武装卫队:MSVC2010编译的LLVM/Clang 3.0设置好目录也打不开头文件,明明环境变量设置好了。<sal.h> <Windows.h> 都在目录。结果打不开。 (2012/04/05 20:36)
@Force武装卫队:When I compile software that uses a configure script, the configure script thinks my system has all of the header files and libraries it is testing for. How do I get configure to work correctly? The configure script is getting things wrong because the LLVM linker allows symbols to be undefined at link time (so that they can be resolved during JIT or translation to the C back end). That is why configure thinks your system "has everything." To work around this, perform the following steps: Make sure the CC and CXX environment variables contains the full path to the LLVM GCC front end. Make sure that the regular C compiler is first in your PATH. Add the string "-Wl,-native" to your CFLAGS environment variable. This will allow the llvm-ld linker to create a native code executable instead of shell script that runs the JIT. Creating native code requires standard linkage, which in turn will allow the configure script to find out if code is not linking on your system because the feature isn't available on your system. (2012/04/06 12:38)
加载中
0
刘军兴
刘军兴

我建议下载 STLport 的标准 STL 库, 放在 clang 的 INCLUDE 目录中.

最好不用微软的 STL 实现.

 

Force武装卫队
Force武装卫队
STLport VC++的stl貌似都不太兼容Clang
子达如何
子达如何
如果用了VS2010版本的STL还说最好不用微软的实现的话,我觉得是偏见了,MS在C++方面的长足进步是大家都看得见的,库的实现也有了质的飞跃,已经比VC6提升了很多很多很多!
Force武装卫队
Force武装卫队
STLport要编译,怎么编译成Clang支持的版本呢?
0
Force武装卫队
Force武装卫队
GCC的C++ Include 库不行吗?
0
匿名人士
匿名人士

问题不清楚呢,你没说你编译LLVM-Clang 用的什么host编译器,是CMake+NMake吗?

一般来说你编译Clang用什么编译器,Clang就用它的INCLUDEPATH和LIBPATH

匿名人士
匿名人士
我试过编译一次,Cmake+VC.NMake 不过VC9/10编译LLVM有个地方会造成CL编译器假死,其他还好 Clang使用跟GCC差不多,关键是你得在环境变量设定好INCLUDE,PATH,一般用VC的命令提示符自己设定就行了
Force武装卫队
Force武装卫队
网络上下载的LLVM的GCC扩展编译的
0
Force武装卫队
Force武装卫队
我看官方的资料看了一下,好像是---LLVM预编译,要用LLVM-LD配置。批处理脚本无效。LLVM-LD是Clang运行的,环境变量无法传递????
0
s
scship
楼主出个clang的windows配置教程啊
Force武装卫队
Force武装卫队
我自己都没有搞好,搞好了铁定出
0
xunxun
xunxun

用什么编译的

Clang不是一个完整的工具链,需要借助host工具链的crt等工具

高铭
高铭
回复 @xunxun : 您用mingw如何编译的啊?
xunxun
xunxun
不知道具体的过程,我使用MinGW无问题。 你可以用clang -v xxx.cpp 一下看看具体的输出信息是啥,看看头文件搜索目录正不正确
Force武装卫队
Force武装卫队
有两个编译版本,MinGW的 用MinGW,VS2010的用VS2010都是头文件不能解析,我使用批处理脚本做的编译环境,好像不能这样做。
0
永远在一起

之前遇到了这个问题,据说是clang只支持在C:/MinGW中查找C++标准库的头文件。不过这点很麻烦,所以我使用了一个脚本:

clang --IE:/DevelopTools/MinGW-4.5.2/include/ -IE:/DevelopTools/MinGW-4.5.2/lib/gcc/mingw32/4.5.2/include -IE:/DevelopTools/MinGW-4.5.2/lib/gcc/mingw32/4.5.2/include/c++ -IE:/DevelopTools/MinGW-4.5.2/lib/gcc/mingw32/4.5.2/include/c++/backward -IE:/DevelopTools/MinGW-4.5.2/lib/gcc/mingw32/4.5.2/include/c++/mingw32 -IE:/DevelopTools/MinGW-4.5.2/lib/gcc/mingw32/4.5.2/include-fixed

保存为myclang.bat进行编译。不知道最新的clang有没有解决这个问题。我使用的是clang2.9

0
Force武装卫队
Force武装卫队

引用来自“永远在一起”的答案

之前遇到了这个问题,据说是clang只支持在C:/MinGW中查找C++标准库的头文件。不过这点很麻烦,所以我使用了一个脚本:

clang --IE:/DevelopTools/MinGW-4.5.2/include/ -IE:/DevelopTools/MinGW-4.5.2/lib/gcc/mingw32/4.5.2/include -IE:/DevelopTools/MinGW-4.5.2/lib/gcc/mingw32/4.5.2/include/c++ -IE:/DevelopTools/MinGW-4.5.2/lib/gcc/mingw32/4.5.2/include/c++/backward -IE:/DevelopTools/MinGW-4.5.2/lib/gcc/mingw32/4.5.2/include/c++/mingw32 -IE:/DevelopTools/MinGW-4.5.2/lib/gcc/mingw32/4.5.2/include-fixed

保存为myclang.bat进行编译。不知道最新的clang有没有解决这个问题。我使用的是clang2.9

多谢,我会试一下
0
永远在一起

MinGW中C++的标准头文件参照我上面的写就可以了,更权威的可以参考http://www.mingw.org/wiki/IncludePathHOWTO,然后在bat脚本后面加上%1之类的参数。平时编写的时候就可以

myclang main.cpp .....

然后整合到VS里面也可以(我没有试过)

0
Force武装卫队
Force武装卫队

引用来自“永远在一起”的答案

MinGW中C++的标准头文件参照我上面的写就可以了,更权威的可以参考http://www.mingw.org/wiki/IncludePathHOWTO,然后在bat脚本后面加上%1之类的参数。平时编写的时候就可以

myclang main.cpp .....

然后整合到VS里面也可以(我没有试过)

貌似上面的设置还是出现了问题
返回顶部
顶部