zoukankan      html  css  js  c++  java
  • ubuntu18 编译安装gccxml

    最近需要在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

    安装成功。

  • 相关阅读:
    雅虎军规34条 (一)
    jetty和tomcat的区别
    Jsp--9大内置对象
    java 重定向和转发的区别
    layer弹出层
    html 锚点
    css绘制三角形
    原生js下拉菜单联动
    layui省市区下拉菜单三级联动
    tp5时间格式转换
  • 原文地址:https://www.cnblogs.com/brian-sun/p/13523287.html
Copyright © 2011-2022 走看看