clang无法编译 出现无法找到头文件的错误
由于工作中需要对编译器有一定了解 下载了几款主流的编译器:GCC,MSVC,clang。
一.在ubuntu下安装GCC较为容易,但对于我这样的linux新手来说终端命令较为复杂,下面简单介绍下在ubuntu下编辑c程序代码,并用GCC编译的具体过程。
1.ctrl+alt+t 调出terminal终端的快捷方式
2.touch+文件名.c touch是ubuntu中创建文件的终端命令 默认会创建在/home/user的目录下,进入终端时路径便是这个路径。可以用ls的终端命令查看当前路径下所有的文件
3.gedit+文件名.c gedit是ubuntu中的编辑器 这个命令会打开编辑器,在这个编辑器中可以编写c程序代码,记得保存(没保存时文件名前会有个*号)。
4.程序书写完成后在终端输入gcc+文件名.c GCC编译器会编译文件,并在当前路径下在生成一个a.out文件
5.输入./a.out运行程序 出来的结果就是程序的结果(注意:./a.out前有一点)
二.GCC不能直接安装在windows系统中,需要MinGw之类的软件。由于工作中不太多涉及这方面,更深入的知识就不深入探究了,这里列出几个概念,留待之后有空去细细探究。
1.Unix-like 系统 2.MinGw和Cygwin 3.clang和MinGw的关系 4.vs2017用clang来编译 ...
下载地址:
http://releases.llvm.org/download.html
我下载的是6.0.1
下载安装后尝试编译出现如标题所示的错误
最终找到的解决方案链接如下:https://blog.csdn.net/5hongbing/article/details/79815969
Clang doesn't ship with its own complete toolchain. It always integrates with whatever standard C/C++ libs and headers the nativeplatform uses.
On Windows, there are twotoolchains worth mentioning: the Visual C++ toolchain, and theMingw toolchain.
If you want to build using make, etc, then you probably want to install mingw.Then you can build with something like "clang--target=i686-pc-mingw32" or "clang--target=x86_64-pc-mingw32"and it should pick the rightheaders for you.
简单来说就是clang没有自己的工具链,需要借用本地平台使用的库和头文件,而在windows平台上最常用的就是Visual C++和MingW,这里我用的是MingW,在安装完成后,在cmd中输入clang--target=i686-pc-mingw32或者clang--target
=x86_64-pc-mingw32就能成功完成编译了。
下面贴出的是我写的main.cpp代码:
对Visual C++平台的命令没有找到 所以暂时不加以研究,同样列为待研究的内容。同时对cmd中这串神秘代码的含义在这里也不加以深究,待空闲时可能会进一步进行探究。