加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在Windows上编译Clang

发布时间:2020-12-14 04:37:43 所属栏目:Windows 来源:网络整理
导读:我按照 http://clang.llvm.org/get_started.html的说明进行操作 我编译了最新的llvm主干和clang与MSVC 2010.现在我可以用Clang编译简单的程序但是当我尝试编译这个程序时我遇到了很多错误. 这是程序: #include algorithmint main(){ return 0; } 以下是一些
我按照 http://clang.llvm.org/get_started.html的说明进行操作

我编译了最新的llvm主干和clang与MSVC 2010.现在我可以用Clang编译简单的程序但是当我尝试编译这个程序时我遇到了很多错误.
这是程序:

#include <algorithm>
int main(){ return 0; }

以下是一些错误:

In file included from hello.cpp:1:
In file included from C:Program FilesMicrosoft Visual Studio 10.0VCincludealgorithm:6:
In file included from C:Program FilesMicrosoft Visual Studio 10.0VCincludememory:987:
In file included from C:Program FilesMicrosoft Visual Studio 10.0VCincludeintrin.h:24:
In file included from H:/LLVM/build/bin/Debug/../lib/clang/3.3/includeimmintrin.h:32:
In file included from H:/LLVM/build/bin/Debug/../lib/clang/3.3/includexmmintrin.h:988:
H:/LLVM/build/bin/Debug/../lib/clang/3.3/includeemmintrin.h:1384:22: error: expected expression
  return (__m128)__in;
                     ^
H:/LLVM/build/bin/Debug/../lib/clang/3.3/includeemmintrin.h:1390:23: error: expected expression
  return (__m128i)__in;
                      ^
H:/LLVM/build/bin/Debug/../lib/clang/3.3/includeemmintrin.h:1396:23: error: expected expression
  return (__m128d)__in;
                      ^

Clang的完整输出:http://pastebin.com/qi87K8qr

Clang尝试使用MSVC标头,但它不起作用.也许我应该使用libc或libstdc,但如何做到这一点?

注意我对预编译的clang二进制文件不感兴趣

解决方法

是的,clang根本不支持Microsoft的所有扩展C语法,因此无法解析使用该语法的Microsoft C头.不仅如此,但Clang也没有完全支持微软的C ABI,名称修改等.我相信Windows上的Clang可以正常使用C语言.

要使用不同的C标准库,您可以使clang忽略正常的头和库目录,IIRC,-nostdinc和-nostdlib.然后你可以告诉clang你想要使用的include和library目录(使用-isystem或-I或者其他).但是我不确定libc或libstdc是否在这些情况下工作,因为它们可能依赖于Windows C运行时库没有的东西.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读