Ubuntu 关于gcc/g++版本更换以及编译问题

我在编译android时,出现了以下问题:

ERROR: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linux-ar only run on 64-bit linux
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/libhost.a] Error 1

解决方法:

看一下你的Ubuntu都装了哪些版本的gcc 用命令:ls /usr/bin/gcc* -l 我的显示是

lrwxrwxrwx 1 root root 7 2011-08-14 15:17 /usr/bin/gcc -> gcc-4.8

-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 /usr/bin/gcc-4.8

-rwxr-xr-x 1 root root 237072 2011-09-17 17:25 /usr/bin/gcc-4.8

-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 /usr/bin/gcc-4.6

由上面显示可以看出默认安装的是gcc-4.8,现在来改成gcc-4.6

删除gcc-4.8的软连接文件/usr/bin/gcc。(只是删除软连接)

命令:sudo rm /usr/bin/gcc

然后建一个软连接,指向gcc-4.6。

命令:sudo ln -s /usr/bin/gcc-4.6 /usr/bin/gcc

ok了,www.linuxidc.com 现在用命令:gcc -v 显示如下:

使用内建 specs。

目标:i686-linux-gnu

配置为:../src/configure -v –with-pkgversion=’Ubuntu/Linaro 4.4.6-11ubuntu2’ –with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs –enable-languages=c,c++,fortran,objc,obj-c++ –prefix=/usr –program-suffix=-4.6 –enable-shared –enable-linker-build-id –with-system-zlib –libexecdir=/usr/lib –without-included-gettext –enable-threads=posix –with-gxx-include-dir=/usr/include/c++/4.6 –libdir=/usr/lib –enable-nls –with-sysroot=/ –enable-clocale=gnu –enable-libstdcxx-debug –enable-objc-gc –enable-targets=all –disable-werror –with-arch-32=i686 –with-tune=generic –enable-checking=release –build=i686-linux-gnu –host=i686-linux-gnu –target=i686-linux-gnu

线程模型:posix

gcc 版本 4.6.4 (Ubuntu/Linaro 4.6.4-11ubuntu2)

用同样的方法更改g++的默认版本。

 chunchun@****:/usr/bin$ ls -l g++*
lrwxrwxrwx 1 root root      7  6月  7 11:25 g++ -> g++-4.6
-rwxr-xr-x 1 root root 263328  4月 16  2012 g++-4.4
-rwxr-xr-x 1 root root 357312  4月 16  2012 g++-4.6

需要将g++链接改为g++-4.4:

sudo mv g++ g++.bak

sudo ln -s g++-4.4 g++

修改后

chunchun@**:/usr/bin$ ls -l g++*
lrwxrwxrwx 1 root root 7 6月 7 11:25 g++ -> g++-4.4
-rwxr-xr-x 1 root root 263328 4月 16 2012 g++-4.4
-rwxr-xr-x 1 root root 357312 4月 16 2012 g++-4.6
lrwxrwxrwx 1 root root 7 3月 14 2012 g++.bak -> g++-4.6

再查看gcc和g++版本号:

gcc/g++更换成功,于是编译android源码,但结果下来

out/target/*****system.img后出现error,最后发现编译没有什么问题,只是一些脚本文件还么有成功.

/home/hsc/usr/Android/是我存放Android4.4的源代码文件夹

根据错误提示: cd/home/hsc/usr/Android/prebuilts/tools/gcc-sdk/

然后把gcc文件下的第23到第39行注释掉,除38行外。

操作:更改Android源代码文件夹下的external/qemu/Makefile.target和Makefile.common文件

external/qemu/Makefile.target

252 line,

LOCAL_CFLAGS +=$(common_LOCAL_CFLAGS) -m64

换成

ifneq($(BUILD_HOST_64bit),)

LOCAL_CFLAGS +=$(common_LOCAL_CFLAGS) -m64

else

LOCAL_CFLAGS +=$(common_LOCAL_CFLAGS) -m32

endif

446 line,

LOCAL_LDLIBS +=$(common_LOCAL_LDLIBS) -m64

LOCAL_CFLAGS +=$(common_LOCAL_CFLAGS) -m64

换成

ifneq($(BUILD_HOST_64bit),)

LOCAL_LDLIBS +=$(common_LOCAL_LDLIBS) -m64

LOCAL_C

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu上安装gccg++是相对简单的。可以使用以下命令来安装gccg++: sudo apt-get install build-essential 这将安装一个名为build-essential的软件包,其中包含了编译C/C++程序所需的所有基本工具和库。安装完成后,您就可以使用gccg++编译和运行C/C++程序了。 另外,如果您想安装特定版本gccg++,您可以使用以下命令来更新apt并安装指定版本gccg++: sudo apt update sudo apt install gcc-<version> g++-<version> 其中,<version>是您想要安装的gccg++版本号。例如,如果您想安装gccg++的最新版本,可以使用以下命令: sudo apt install gcc-10 g++-10 安装完成后,您可以使用gcc-10和g++-10来编译和运行C/C++程序。 如果您想在默认情况下使用特定版本gccg++,您可以通过修改环境变量来配置。您可以编辑~/.bashrc文件,并将以下行添加到其中: export PATH=$PATH:/usr/bin/gcc-<version> export PATH=$PATH:/usr/bin/g++-<version> 然后,运行以下命令来使更改生效: source ~/.bashrc 现在,您可以使用gccg++编译和运行C/C++程序,它们将使用您指定的版本。 希望这些信息能够帮助您在Ubuntu上安装gccg++。如有任何进一步的问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ubuntu 和 CentOs 安装 gccg++](https://blog.csdn.net/weixin_39925939/article/details/125135412)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Ubuntu18.04中安装gccg++编译器 /运行c文件、c++文件【超详细图文教程】](https://blog.csdn.net/weixin_43290551/article/details/125970965)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [ubuntu安装gcc g++](https://blog.csdn.net/weixin_45268113/article/details/127667820)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值