Mee*_*nor 8 compiling gcc g++ make
我目前正在尝试安装 gcc 4.8.1。当前安装了 4.8.2 和 4.9.1。我从这里下载了 4.8.1 http://gcc.cybermirror.org/releases/gcc-4.8.1/。提取文件后,我做了一个./configure然后尝试了make. 最后make,我收到此错误
/usr/include/linux/errno.h:1:23: fatal error: asm/errno.h: No such file or directory
#include <asm/errno.h>
Run Code Online (Sandbox Code Playgroud)
我是 linux 新手,所以我不知道如何查找或添加这个头文件。
编辑:我做的步骤:
cd gcc-4.8.1./configure --build=x86_64-linux-gnumake -j4我不知道我做了什么不同的事情,但它终于编译了。之后我确实进行了安装。我现在的问题是如何使用它而不是使用命令 gcc-4.8 仍然默认使用的 4.8.2。
小智 6
我在ubuntu-xenial 4.4.0-75-generic.
我发现我有一个/usr/include/asm-generic文件夹,但没有/usr/include/asm,这是 gcc 正在寻找的。
创建一个符号链接为我解决了这个问题。
sudo ln -s /usr/include/asm-generic/ /usr/include/asm
Run Code Online (Sandbox Code Playgroud)
公平警告:虽然有时必须做这种诡计,但仅仅因为它有效并不总是一个好主意。我在虚拟机中执行此操作,我可以通过运行一个简单的脚本来重新创建它,这就是为什么如果我破坏某些东西也没什么大不了的。
的asm/errno.h报头由提供各种包。奇怪的是gcc需要它,但你可以尝试:
sudo apt-get install linux-libc-dev
Run Code Online (Sandbox Code Playgroud)
您还需要告诉 GCC 寻找头文件的体系结构和操作系统特定位置:
../configure --build=x86_64-linux-gnu
Run Code Online (Sandbox Code Playgroud)
(或i386-linux-gnu用于 32 位 Ubuntu)。
从源代码构建内容时强烈建议您在配置时使用--prefix标志(以及 GCC,--program-suffix标志)。既然还没有,请尝试运行/usr/bin/gcc.
因此:
tar xf gcc-4.8.1.tar.gz
mkdir gcc
cd gcc
../gcc-4.8.1/configure --build=x86_64-linux-gnu --prefix=/usr/local --program-suffix=-4.8.1
make -j
sudo make install
Run Code Online (Sandbox Code Playgroud)
现在,您的GCC二进制文件将被安装到/usr/local/bin/,而在其他文件夹中其他的东西/usr/local。
例如:
$ /usr/local/bin/gcc-4.8.1 # or simply gcc-4.8.1, since this folder is in your PATH
Run Code Online (Sandbox Code Playgroud)
注意如何我运行configure,并make从不同的目录,这里的GCC源之外?这就是GCC 文档建议构建 GCC 的方式。
| 归档时间: |
|
| 查看次数: |
19183 次 |
| 最近记录: |