最近需要在ubuntu上安装gccxml,我的ubuntu版本是18。

使用sudo apt-get install gccxml提示找不到gccxml,最后使用了编译安装的方式安装gccxml。

1.下载

1 git clone https://github.com/gccxml/gccxml.git

如果下载速度过慢的话,可以先将此项目挂载到码云上,再使用码云的地址下载。

下载完毕后,会在当前文件目录下生成一个名为gccxml的文件目录。

2.编译安装

按照官网的教程,在gccxml文件夹所在目录(gccxml文件夹之外)新建一个gccxml-build文件夹

1 mkdir gccxml-build

之后,检查系统有无cmake(cmake --version),如果没有,sudo apt-get install cmake;

1 cd gccxml-build
2 cmake ../gccxml
3 make
4 make install

执行到make时,编译报错:(1). floor_log2,exact_log2重定义;(2).except.c:对"libc_name_p"未定义的引用。

按照CSDN上的一篇博客进行修改:https://blog.csdn.net/ztguang/article/details/71172559

错误1:

打开gccxml/GCC/gcc/toplev.h文件,

 1 /* 这两个函数已经在toplev.c中定义过了,在toplev.h中将其注释掉
2 extern inline int
3 floor_log2 (unsigned HOST_WIDE_INT x)
4 {
5 return x ? HOST_BITS_PER_WIDE_INT - 1 - (int) CLZ_HWI (x) : -1;
6 }
7
8 extern inline int
9 exact_log2 (unsigned HOST_WIDE_INT x)
10 {
11 return x == (x & -x) && x ? (int) CTZ_HWI (x) : -1;
12 }
13 */

错误2:

打开gddxml/GCC/gcc/cp/cfns.h

1 //找到这部分代码,并改为如下
2 //#ifdef __GNUC__
3 //__inline
4 //#endif
5 const char*
6 libc_name_p (register const char *str, register unsigned int len);

修改完成后,回到gccxml-build文件夹。

我将gccxml-build中的所有文件都删掉,rm -rf *,之后重新执行:

1 cmake ../gccxml
2 make
3 make install

完成后,gccxml --version,显示GCC-XMl version 0.9.0

安装成功。

ubuntu18 编译安装gccxml的更多相关文章

  1. Ubuntu18.04下编译安装Guitarix 0.37.3

    准备工作 源文件下载 https://sourceforge.net/projects/guitarix/files/guitarix/ 安装依赖. 参考 https://sourceforge.ne ...

  2. ubuntu18.04 编译安装 apache php

    1. apache apache 需要依赖几个模块:apr, apr-util, pcre,也分别源码安装. 1.1 编译安装 1.1.1 apr apr-util 下载地址:http://apr.a ...

  3. Linux c++ vim环境搭建系列(3)——Ubuntu18.04.4编译安装youcompleteme

    3. youcompleteme编译安装 参考网址: https://github.com/ycm-core/YouCompleteMe#linux-64-bit 建议不要用这个博客的方法: http ...

  4. Linux c++ vim环境搭建系列(2)——Ubuntu18.04.4编译安装llvm clang

    2. 源码编译安装llvm clang 参考网址: https://llvhttps

  5. Linux c++ vim环境搭建系列(1)——Ubuntu18.04.4编译安装vim8.2

    1. vim源码编译安装 参考网址: https://github.com/ycm-core/YouCompleteMe/wiki/Building-Vim-from-source 安装各类依赖库 s ...

  6. 编译安装和apt安装Nginx1.14.0

    安装依赖 yum -y install gcc gcc-c++yum -y install zlib zlib-devel openssl openssl-devel pcre-devel 在Ubun ...

  7. Centos7.4和Ubuntu18.04安装PHP7.2

    安装依赖 yum install gcc-c++ libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcu ...

  8. Ubuntu16.04编译安装Redis Desktop Manager

    Redis Desktop Manager for OSX&Ubuntu 的安装版是收费的, 如果自己编译则是免费的. 安装过程参考官方提供的文档  http://docs.redisdesk ...

  9. ubuntu18.04 安装hadoop 2.7.3+hive 2.3.4

    1. 安装hadoop 详细请参见本人的另外一片博文<Hadoop 2.7.3 分布式集群安装> 2. 下载hive 2.3.4 解压文件到/opt/software -bin.tar.g ...

  10. 编译安装msyql

    环境: ubuntu18.04.2 mysql5.7.21 #创建mysql属组 groupadd mysql useradd -g mysql mysql #查看属组 tail /etc/passw ...

随机推荐

  1. scp本地服务器和远程服务器拷贝文件

    上传本地文件到服务器 scp 本地路径 用户名@远程服务器ip:远程路径 下载文件 scp 用户名@远程服务器ip:远程路径 本地路径 -r 是上传下载本地目录到远程 远程文件

  2. 更新package.json里所有模块

    安装该插件 cnpm install -g npm-check-updates 或者 npm install -g npm-check-updates 在有package.json的目录执行 npm- ...

  3. 数据转换3-航拍的osgb格式数据转成3dtile格式

    选择的是包含所有 osgb 文件夹的 Data 文件 文件添加成功之后,空间参考,零点坐标等会根据文件自动生成,需要更改点击设置选择即可 存储类型:选择"散列",如果没有注意到,C ...

  4. C#应用的欢迎界面窗体方案 - 开源研究系列文章

    这次整理以前的代码,然后想到了应用的欢迎界面窗体的问题.这个例子是在应用中启动一个线程来进行显示欢迎窗体的,对于应用的启动无影响,与其他人的源码不相同,欢迎读者进行复用此类库. 以前有编写过欢迎界面窗 ...

  5. pageoffice 6 Vue+Springboot磁盘路径打开文档

    本示例关键代码的编写位置 Vue+Springboot 注意 本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用. 在正式的项目开发中,用户文 ...

  6. YiShaAdmin:一款基于.NET Core Web + Bootstrap的企业级快速开发框架

    前言 今天大姚给大家分享一款基于.NET Core Web + Bootstrap的企业级快速后台开发框架.权限管理系统,代码简单易懂.界面简洁美观(基于MIT License开源,免费可商用):Yi ...

  7. Linux中默认的shell如何切换为其他类型的shell

    1.一般linux系统会默认使用一种shell,比如我当前系统使用的默认shell是bash,可以使用如下方法查看. [root@node5 ~]# echo $SHELL /bin/bash 2.当 ...

  8. 2024 CISCN WEB 部分wp

    前言 第二天的revenge真是绷不住,出的很好,下次多出点revenge. ezjava 简要介绍 sqlite jdbc...真的没想到,写文件覆盖写了半天,结果是个CVE...,给的很多东西都是 ...

  9. aardio桌面软件开发 简单,打包后文件小,支持 .net python 和 众多插件

    aardio 编程语言 - 官网 aardio  专注于桌面软件开发,17年一直保持非常活跃地更新( 更新日志 ),aardio 被多年用于生产项目实践,久经测试和锤炼.aardio 在诞生之初就设计 ...

  10. 鸿蒙HarmonyOS实战-Web组件(页面跳转和浏览记录)

    前言 页面跳转是指在浏览器中从当前页面跳转到另一个页面的操作.可以通过点击链接.输入网址.提交表单等方式实现页面跳转. 浏览记录是指记录用户在浏览器中浏览过的页面的历史记录.当用户跳转到一个新页面时, ...