1.源码编译 gcc 12
2.Linux驱动开发笔记(二):ubuntu系统从源码编译安装gcc7.3.0编译器
3.Linux环境源码安装GCC/CMAKE
4.在debian里装了gcc4.4 现在想安装gcc3.4.6,源码因为要利用低级gcc的安装特性。 现在怎么装老板本的源码gcc而不导致冲
5.GCC 源码编译安装
6.gcc7.3.0下载与安装
源码编译 gcc 12
最近对于C++协程的研究促使我决定更新gcc到最新稳定版本.1.0。首先,安装从gcc官网下载了gcc-.1.0.tar.xz的源码安装包,通过`tar xf gcc-.1.0.tar.xz`命令解压。安装lambdaquery源码
接下来,源码进入解压后的安装目录,执行`./contrib/download_prerequisites`脚本来自动下载所需的源码依赖项,确保编译环境准备就绪。安装
然后,源码开始编译过程,安装通过`./configure`命令,源码并设置编译选项,安装如`--prefix=/home/lingzhang/gcc`指定安装路径,源码`--enable-bootstrap`启用自举编译,`--enable-languages=c,c++`启用C和C++语言支持,`--enable-threads=posix`选择POSIX线程模型,`--enable-checking=release`开启检查以确保质量,`--disable-multilib`禁用多库支持,`--with-system-zlib`使用系统级的zlib库。执行`make`命令开始编译,接着`make install`进行安装。
为了方便后续使用,创建了一个名为gcc.env的环境变量文件,内容为设置环境变量。通过`source gcc.env`来激活这个环境变量,确保gcc.1的渔场小程序源码正确使用。
最后,验证安装的gcc版本,通过`gcc -v`命令,显示的版本信息确认为.1,至此,gcc .1.0的编译和环境设置已完成。
Linux驱动开发笔记(二):ubuntu系统从源码编译安装gcc7.3.0编译器
在编译Ubuntu驱动时,由于使用的gcc版本为7.3.0,通过apt管理和下载都无法直接安装,因此需要从源码编译安装gcc7.3.0编译器。
GCC,作为GNU项目的重要组成部分,是一款遵循GPL许可证的自由软件。起初,它为GNU操作系统设计,如今已广泛应用于Linux、BSD、MacOS X等系统,甚至在Windows上也有应用。GCC支持多种处理器架构,如x、ARM和MIPS,并且支持多种编程语言,如C、C++、Fortran、Pascal等。源码语言修改病句
要从源码安装gcc7.3.0,首先需要下载源码包。下载地址为:mirrors.tuna.tsinghua.edu.cn...
安装过程分为几个步骤。首先,确保网络连接,因为需要依赖库,如libgmp-dev、libmpfr-dev和libmpc-dev。安装完这些后,不要卸载已有的gcc,因为可能会遇到问题。
下载并解压gcc-7.3.0.tar.gz,然后执行./configure。注意增加c和c++的配置,避免编译结果只有g++。配置完成后,进行make -j4编译,可能会遇到错误,如"fatal error: asm/errno.h: No such file or directory",这时需要修改头文件路径。
继续编译,可能会遇到"sanitizer_syscall_generic.inc::: error: '__NR_open' was not declared in this scope",解决方法是修正头文件链接。最后,编译成功后执行sudo make install,并确认安装版本。
在安装过程中,做直播的源码有两点需要注意:一是本地需要g++,否则编译时会出错,解决方法是安装gcc;二是安装后可能只有g++,没有gcc,此时需在./configure阶段添加c和c++的配置。
Linux环境源码安装GCC/CMAKE
为了在Linux环境下源码安装GCC和CMAKE,我们需要遵循详细的步骤和策略。对于GCC源码,我们可以从GitHub-gcc-mirror/gcc获取4.4.6版本。接下来,进入下载后的GCC源代码目录。
在配置和编译GCC时,首先应该明确指定安装的目录,避免冲突。可能在配置脚本时遇到错误,这时候需要解决依赖项问题。分别安装MPFR、MPC和任何其他必要的依赖库。对于GCC8.3及以上版本,内部集成脚本能够简便地获取这些依赖库。
安装库路径后,再次执行配置文件,加入库路径参数,确保安装的每个步骤顺利进行。配置完成后,整个GCC安装过程即宣告成功。
为了测试GCC是姓名测评类源码否正确安装,遵循指导进行验证。
CMake的安装同样关键,可以通过直接指定需要的GCC版本来简化安装流程。在CMake命令行参数中指定GCC路径也是可行的。
在运行GCC4.4.6编译的程序时,可能存在系统路径问题,这是因为我们选择的是不替换安装方式。因此,需要额外操作,确保所需的库被正确添加到路径中。
遇到GCC多版本引起的ABI兼容问题时,如果编译链接过程中遇到“undefined reference to"“std::__cxx ***””错误,这提示可能是C++ ABI问题。处理方法是,针对GCC5.1之前版本发布的libstdc++中新增的ABI,通过添加定义-D_GLIBCXX_USE_CXX_ABI=0来解决该问题。
对于GDB版本的问题,特别在GCC.1的使用中,要求C++的编译器,导致了旧版本GDB启动出现Segment Fault。解决办法是升级GDB版本。
附录中提供了一些额外资源,例如Mingw下载,适用于位和位Windows的最新版x_-win-sjlj;CMake下载链接以及GCC的GitHub地址等。遵循这些资源和提示,能够帮助用户顺畅进行Linux环境下的GCC和CMAKE的源码安装与配置。
在debian里装了gcc4.4 现在想安装gcc3.4.6,因为要利用低级gcc的特性。 现在怎么装老板本的gcc而不导致冲
一、先安装gcc3.4.6,为了避免麻烦,或者和原来的gcc4.4造成冲突,请用源代码安装方式安装gcc3.4.6,就是 make make install的方式,而不要用deb包的方式安装。
二、一种方法是手动用ln -s创建符号链接来管理,但这样费时费力,而且容易导致toolchain混乱。
幸好有update-alternatives实用软件!它可以方便管理好同一软件的各个不同版本。
1.一般情况下,编译程序路径都是使用
/usr/bin/gcc
其实这个/usr/bin/gcc只是个符号链接,它指向了/etc /alternatives/gcc,而/etc/alternatives/gcc是指向了/usr/bin/gcc-4.3,可以用ls命令查看
z@GODSON:~$ ls -l /usr/bin/gcc
lrwxrwxrwx 1 root root -- : /usr/bin/gcc -> /etc/alternatives/gcc
z@GODSON:~$ ls -l /etc/alternatives/gcc
lrwxrwxrwx 1 root root -- : /etc/alternatives/gcc -> /usr/bin/gcc-4.3
2.现在我们使用 update-alternatives管理我们的GCC版本:
z@GODSON:~$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/gcc-4.4.0/bin/gcc
z@GODSON:~$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3
z@GODSON:~$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.1
这样,我们就已经把我们安装的三个GCC版本向update-alternatives注册了,接下来我们便可以方便地管理各版本切换。
3. 切换版本
切换版本到gcc-4.4.0:
z@GODSON:~$ sudo update-alternatives --config gcc
[sudo] password for z:
现有 3 个可选项,它们都提供了“gcc”<
选择 可选项
-----------------------------------------------
*+ 1 /usr/gcc-4.4.0/bin/gcc
2 /usr/bin/gcc-4.3
3 /usr/bin/gcc-4.1
要维持缺省值[*],按回车键,或者键入选择的编号:
输入想要切换的版本,回车之后就OK了,然后你可以用gcc --version查看版本。
GCC 源码编译安装
前言
本文主要介绍如何在特定条件下,通过源码编译安装GCC(GNU Compiler Collection)4.8.5版本。在Linux环境下,特别是遇到较老工程代码和低版本GCC适配问题时,网络仓库不可用,可通过下载源码进行本地编译安装。文章总结了该过程的步骤,以期帮助读者解决类似需求。
Linux系统版本:SUSE Linux Enterprise Server SP5 (aarch) - Kernel \r (\l)
GCC版本:gcc-4.8.5
步骤如下:
1,源码下载
直接在Linux终端执行:wget ftp.gnu.org/gnu/gcc/gcc...
或手动下载:ftp://gcc.gnu.org/pub/gcc/infrastructure
选取对应的gcc版本下载。
2,解压并进入目录
解压下载的tar包:tar -jxvf gcc-4.8.5.tar.bz2
进入解压后的目录:cd gcc-4.8.5
3,配置依赖库
联网情况下:cd gcc-4.8.5/
./contrib/download_prerequisites
无法联网时,手动下载依赖库(如mpfr、gmp、mpc)并上传到指定目录,然后分别解压、重命名并链接。
4,创建编译存放目录
在gcc-4.8.5目录下执行:mkdir gcc-build-4.8.5
5,生成Makefile文件
cd gcc-build-4.8.5
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
推荐配置时,根据环境调整参数,如X_环境下的`--disable-libsanitizer`。
6,执行编译
make(可能耗时较长)
解决可能出现的问题,如libc_name_p和struct ucontext uc,通过参考gcc.gnu.org/git或直接覆盖相关文件。
7,安装GCC
在gcc-build-4.8.5目录下执行:make install
安装完成后,可直接解压并安装。
8,配置环境变量
执行命令:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/gcc-4.8.5/mpc:/root/gcc-4.8.5/gmp:/root/gcc-4.8.5/mpfr
确保路径一致,执行 source /etc/profile 使环境变量生效。
9,检查安装情况
通过`gcc -v`和`g++ -v`验证GCC版本。
,库升级
遇到动态库未找到问题时,需升级gcc库,通过查找和替换最新库文件解决。
,卸载系统自带的gcc
以root用户执行:rpm -qa |grep gcc | xargs rpm -e --nodeps
,修改ld.so.conf文件
编辑文件:vi /etc/ld.so.conf,在最下面添加实际路径,如/usr/local/lib和/usr/local/lib。
执行 ldconfig /etc/ld.so.conf。
,修改GCC链接
确保GCC及其相关工具的正确链接,使用`ll /usr/bin/gcc*`和`ll /usr/bin/g++*`检查链接结果。
至此,GCC源码编译安装流程完成,可满足特定环境下的GCC版本需求。
gcc7.3.0下载与安装
下载与安装gcc7.3.0
首先,访问gcc官网获取最新源码,下载gcc7.3.0版本。
登录gcc官网后,进入相应目录下载gcc-7.3.0.tar.gz文件。
下载完毕后,使用tar命令解压源码包。
解压后,移动至解压目录执行安装配置。
通过./configure命令,指定安装路径为/usr/local/gcc-7.3.0。
接下来,运行make命令进行编译。
完成编译后,执行make install命令安装gcc7.3.0。
最后,为了方便使用,创建软链接,将/usr/local/gcc-7.3.0/bin目录下的gcc链接到/usr/bin。
至此,成功下载并安装gcc7.3.0,完成gcc的安装过程。
Ubuntu. 下手动编译安装gcc-6.3.0安装,多版本GCC 共存和切换
在Ubuntu .环境下,为编译Matlab的mex函数,需要特定版本的gcc-6.3.0。尽管sudo apt-get默认安装的是6.5.0,而较新版本的如gcc-8, gcc-9, gcc-可以通过apt-get安装。以下是手动编译和安装gcc-6.3.0,以及处理多版本GCC共存和切换的步骤:
1. 首先,你需要从ftp.gnu.org/gnu/gcc/下载gcc-6.3.0的源代码。
2. 安装时,确保使用自定义路径,如--with-gmp=$HOME/local/ --with-mpfr=$HOME/local/ --with-cgal=$HOME/local/,这与你的安装目录相关。
3. 配置和编译过程可能耗时且可能出现错误,例如configure期间可能遇到`CC' has changed since the previous run`的错误,解决方法是运行`make distclean`或`rm ./config.cache`重置。
4. 在遇到`error: dereferencing pointer to incomplete type 'struct ucontext'`错误时,这是由于struct定义不完整引起的。需要修正相关变量uc_的代码。
5. 另一个问题是关于`sanitizer_platform_limits_posix.cc`中的sys/ustat.h文件问题,需要在适当位置插入预计算的Linux结构ustat大小。
6. 在sanitizer_common/sanitizer_internal_defs.h文件中,可能会遇到数组大小负数的错误。在configure时,可以考虑注释掉--disable-libsanitizer以解决这个问题,特别是如果你不使用golang。
总之,手动编译gcc-6.3.0在Ubuntu .上需要细心处理各种编译时的问题,并且需要根据错误信息进行相应的调整,同时要处理不同GCC版本的共存和切换。