Linux上成功编译CoreCLR源代码

时间:2021-01-29 02:19:16

>>Build日期:2015-2-5下午(编译失败)。

开始Linux发行版用的是CentOS 6.5,操作步骤:

1)配置git: git config --global http.sslverify false

2)签出github上的CoreCLR代码库: git clone https://github.com/dotnet/coreclr.git

3)安装cmake: yum install cmake

4)安装clang: yum install clang

5)运行build命令: sh build.sh

6)build结果——失败!错误信息如下:

Commencing CoreCLR Repo build
Checking pre-requisites...
Commencing build of native components for amd64/debug
Invoking cmake with arguments: /data/git/coreclr DEBUG
Detected Linux x86_64
-- Configuring done
-- Generating done
-- Build files have been written to: /data/git/coreclr/binaries/CMake
Executing make
[ 0%] Building CXX object src/pal/src/CMakeFiles/CoreClrPal.dir/exception/seh.cpp.o
In file included from /data/git/coreclr/src/pal/src/exception/seh.cpp:22:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/typeinfo:34:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/exception:148:
/usr/bin/../lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/exception_ptr.h:143:13: error: unknown type
name 'type_info'
const type_info*
^
1 error generated.
make[2]: *** [src/pal/src/CMakeFiles/CoreClrPal.dir/exception/seh.cpp.o] Error 1
make[1]: *** [src/pal/src/CMakeFiles/CoreClrPal.dir/all] Error 2
make: *** [all] Error 2
Failed to build coreclr components.

【更新】

>>Build日期:2015-2-5晚上(编译成功)。

后来,将遇到的这个问题在github coreclr issue #77中提交了一下,很快有人回复编译器只能用clang 3.5。

看了一下CentOS安装的最新版clang是clang 3.4.2,看来是这个问题引起的。

要到LLVM官网上一看,预编译好的clang 3.5有Ubuntu的版本,但没有CentOS的。

于是,干脆将操作系统换成Ubuntu。在Ubuntu上用apt-get install clang安装,也是clang 3.4,只有手动安装clang 3.5。

手动安装参考的是园子里的这篇博文:在 Linux 下使用 clang 3.0 + llvm 3.0 + libc++

在Ubuntu中编译CoreCLR的实际操作步骤如下:

1)安装cmake: apt-get install cmake

2)下载预编译好的clang 3.5: wget http://llvm.org/releases/3.5.0/clang+llvm-3.5.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz

3)解压下载好的clang 3.5压缩包: tar xvf clang+llvm-3.5.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz

4)进入解压后的文件夹: cd clang+llvm-3.5.0-x86_64-linux-gnu

5)复制其中的文件至/usr: cp -R * /usr

6)编译CoreCLR: sh build.sh

7)等待编译结果:

Commencing CoreCLR Repo build
build.sh: 101: build.sh: Bad substitution
build.sh: 161: [: false: unexpected operator
Checking pre-requisites...
Commencing build of native components for amd64/debug
Invoking cmake with arguments: /data/git/coreclr DEBUG
Detected Linux x86_64
-- Configuring done
-- Generating done
-- Build files have been written to: /data/git/coreclr/binaries/CMake
Executing make
[ 0%] Building CXX object src/pal/src/CMakeFiles/CoreClrPal.dir/exception/seh.cpp.o
...

结果。。。编译成功了!

[100%] Built target mscordaccore
Install the project...
-- Install configuration: "DEBUG"
-- Installing: /data/git/coreclr/binaries/Product/amd64/debug/./corerun
-- Installing: /data/git/coreclr/binaries/Product/amd64/debug/./libmscordaccore.so
-- Installing: /data/git/coreclr/binaries/Product/amd64/debug/./libcoreclr.so
Repo successfully built.
Product binaries are available at /data/git/coreclr/binaries/Product/amd64/debug

耶!大功告成!

/data/git/coreclr/binaries/Product/amd64/debug# ls
corerun libcoreclr.so libmscordaccore.so

【补充】

GitHub上已经有了专门的参考资料:Building and Running CoreCLR on Linux

Linux上成功编译CoreCLR源代码的更多相关文章

  1. Windows上成功编译CoreCLR源代码

    昨天得知微软在GitHub上发布CoreCLR的源代码之后,立马从GitHub上签出代码,并尝试在Windows Server 2012上进行编译. 参考CoreCLR的开发者指南(Developer ...

  2. Mac OS X上尝试编译CoreCLR源代码

    CoreCLR登陆GitHub之后,体验CoreCLR首当其冲的方式就是在自己的电脑上编译它,昨天分别在Windows与Linux上成功编译了CoreCLR,详见: 1)Windows上成功编译Cor ...

  3. Linux上安装编译工具链

    在Linux上安装编译工具链,安装它会依赖dpkg-dev,g++,libc6-dev,make等,所以安装之后这些依赖的工具也都会被安装.ubuntu软件库中这么描述 Informational l ...

  4. Linux上VsCode编译打包运行

    前提:最好使用root用户可以排除一些不必要的错误. 一. 准备环境 Node.js(>= 8.12.0, < 9.0.0) Python2.7 Yarn(可以通过npm install ...

  5. 《TCP&sol;IP高效编程:改善网络程序的44个技巧》源码在Linux上的编译

    为了先完整编译通过,需要以下几个步骤: 1.进入linux子目录,执行 make.(此步骤为打补丁.) 2.返回上一级目录,打开文件 simplec.c,添加头文件 #include <stdi ...

  6. linux上的编译安装

    计算机运行的程序都是二进制的代码,那么我们所用的编程语言都是自然语言中的字符,那么就需要有一种机制来将这些转化成二进制代码,那么根据转化机制不一样,编程语言(软件 产生的源头)分两大类 解释型 编译型 ...

  7. java类在eclipse上打jar包,Linux上成功运行的实例

    1 eclipse下的java项目结构如下图所示: 2 打包的步骤如下: 3 修改minifest.mf文件:  4 .上传需要的三方jar包们和主类打的jar(案例是topV.jar)并且执行jav ...

  8. 在Linux上成功启动Jenkins却无法访问的问题

    本鸟最近打算学习Jenkins,正准备在Linux上面鼓捣一番,,却没想被入门级别问题当头一棒 下载完jenkins.war,使用java -jar命令在8088端口开启服务:java -jar je ...

  9. Win10上编译CoreCLR的Windows和Linux版本

    一.编译环境 首先,不管是Windows还是Linux版本CoreCLR的编译,都是在Windows10上进行的. 二.CoreCLR for Windows 在Windows上做编译怎么能少得了Vi ...

随机推荐

  1. Codeforces Round &num;388 &lpar;Div&period; 2&rpar; - B

    题目链接:http://codeforces.com/contest/749/problem/B 题意:给定平行四边形的3个点,输出所有可能的第四个点. 思路:枚举任意两个点形成的直线,然后利用这两个 ...

  2. mysql中价格用什么数据类型表示最佳&quest;

    DECIMAL和NUMERIC都行DECIMAL和NUMERIC类型在MySQL中视为相同的类型.它们用于保存必须为确切精度的值,例如货币数据.当声明该类型的列时,可以(并且通常要)指定精度和标度:例 ...

  3. Tomcat安装后,远程IP无法访问的问题。

    我在使用阿里云与聚石塔的时候,发现Tomcat启动后,本地可以访问,但是外网无法访问,即使关闭防火墙也无法访问. 原因是 云平台的网络拦截. 阿里云:有一个入网规则 和 出网规则 ,流入数据端口  流 ...

  4. HashMap的实现原理

    1.HashMap的数据结构 数组的特点是:寻址容易,插入和删除困难:而链表的特点是:寻址困难,插入和删除容易.那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的, ...

  5. Activity Threa创建Window和View分析

    http://blog.csdn.net/ljsbuct/article/details/7094580 1. 入口. 以前一直都说Activity的人口是onCreate方法.其实android上一 ...

  6. 理解MVC路由配置(转)

    在上一篇文章中,我简短的谈了一下MVC的底层运行机制,如果对MVC还不是很了解的朋友,可以作为入门的参照.接下来,我开始介绍关于URL路由的相关知识.URL路由不是MVC独有的,相反它是独立于MVC而 ...

  7. 运行ORB-SLAM笔记&lowbar;编译篇(一)

    1.下载代码   https://github.com/raulmur/ORB_SLAM/    (同时也可以看看作者的牛叉论文,我是打算先用代码,再回头看论文) 2.打开后如下 就好像是用一件新产品 ...

  8. 读&ldquo&semi;40 分,60 分,90 分&rdquo&semi;

    原文链接: http://mp.weixin.qq.com/s?__biz=MzA5MjYyNzY1OQ==&mid=2650901947&idx=1&sn=89af64d3b ...

  9. centos 打包报错Can&&num;39&semi;t connect to X11 window server using &&num;39&semi;&colon;0&period;0&&num;39&semi; as the value of the DISPLAY variable&period;

    参考: https://blog.csdn.net/salonzhou/article/details/8990237https://*.com/questions/23358 ...

  10. 爬取数据时解析url时一直报错Caused by&colon; java&period;net&period;URISyntaxException&colon; Illegal character in query at index 823替换了所有空格和特殊字符还是无效

    近日在用HttpClient访问抓取汇率时,为了省力,直接采用 String url = "http://api.liqwei.com/currency/?exchange=usd|cny& ...