标签: gcc

如何为 Beagleboard 从头开始​​(CLFS)为跨 Linux 构建 GCC 交叉编译器?

目前,我尝试使用Cross Linux from Scratch 中的说明从头开始构建嵌入式 Linux 。

一切正常,直到我尝试编译 GCC 交叉编译器。我想为 Beagleboard-xM 构建 Linux...所以我选择了以下设置:

export CLFS_ABI="aapcs-linux"
export CLFS_HOST="x86_64-cross-linux-gnu"
export CLFS_TARGET="armv7a-unknown-linux-uclibceabi"
export CLFS_ARCH="arm"
export CLFS_ENDIAN="little"
export CLFS_ARM_ARCH="armv7"
export CLFS_ARM_MODE="arm"
export CLFS_FLOAT="hard"
export CLFS_FPU="neon"
Run Code Online (Sandbox Code Playgroud)

不,只要我尝试运行此页面上的说明,命令就会make all-gcc all-target-libgcc出错。

checking for armv7a-unknown-linux-uclibceabi-gcc...  /mnt/clfs/sources/gcc-build/./gcc/xgcc -B/mnt/clfs/sources/gcc-build/./gcc/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/bin/ -B/mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/lib/ -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/include -isystem /mnt/clfs/cross-tools/armv7a-unknown-linux-uclibceabi/sys-include   
checking for suffix of object files... configure: error: in `/mnt/clfs/sources/gcc-build/armv7a-unknown-linux-uclibceabi/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make: *** [configure-target-libgcc] Error …
Run Code Online (Sandbox Code Playgroud)

embedded arm gcc cross-compilation

10
推荐指数
1
解决办法
3308
查看次数

如何在 debian wheezy 上安装 gcc 4.8.1

我想在我的 Debian Wheezy 7.1.0 系统上安装 GCC 4.8.1。我系统上安装的当前 GCC 版本是 4.7.2。我看到 gcc-4.8.1 在 Debian 存储库中可用。有人可以告诉我如何执行此更新吗?

debian gcc

10
推荐指数
1
解决办法
2万
查看次数

如何在 FreeBSD 上安装最新的 gcc?

我如何gcc在 FreeBSD 上安装最新版本并设置系统,以便使用这个最新版本来编译更多程序?

在撰写本文时,最新版本gcc是 4.9.0。我使用 FreeBSD 10.0。

我实际上需要g++,C++ 编译器;但我需要gcc49为它安装类似package 的东西,对吗?

freebsd gcc g++

10
推荐指数
1
解决办法
4万
查看次数

Linux 不能在没有 GCC 优化的情况下编译;影响?

人们可以在互联网上找到几个线程,例如:

http://www.gossamer-threads.com/lists/linux/kernel/972619

人们抱怨他们无法使用 -O0 构建 Linux,并被告知这不受支持;Linux 依靠 GCC 优化来自动内联函数、删除死代码,以及执行构建成功所需的其他操作。

我已经为至少一些 3.x 内核亲自验证了这一点。如果使用 -O0 编译,我尝试过的那些会在几秒钟的构建时间后退出。

这通常被认为是可接受的编码实践吗?编译器优化(例如自动内联)是否具有足够的可预测性以供依赖;至少在只处理一个编译器时?未来版本的 GCC 有多大可能破坏具有默认优化(即 -O2 或 -Os)的当前 Linux 内核的构建?

还有一个更迂腐的注释:由于 3.x 内核不能在没有优化的情况下编译,它们是否应该被视为技术上不正确的 C 代码?

linux compiling c gcc

10
推荐指数
1
解决办法
8170
查看次数

无法执行“Hello, World!” C 程序的用户不是“root”

我写了一篇《你好,世界!》myCFile.cDebian 操作系统 x86 嵌入式板上的C 文件。

#include <stdio.h>
int main()
{
  printf("hello\n")
}
Run Code Online (Sandbox Code Playgroud)

我编译程序:gcc myCFile.c

然而,

tester@localhost:~/test$ ./a.out
-bash: ./a.out: Permission denied
tester@localhost:~/pravin$ ls -lrt
total 44
-rwxrwxrwx 1 tester test   54 Sep  7 07:33 myCFile.c
-rwxrwxrwx 1 tester test   16608 Sep  7 07:33 a.out
Run Code Online (Sandbox Code Playgroud)

但是,如果我复制a.out/run/user/1000,我可以执行它。

tester@localhost:/run/user/1000$ ls
a.out  bus  gnupg  systemd
Run Code Online (Sandbox Code Playgroud)

另外,当我用root用户编译C文件并执行它时,我可以执行它。我可以执行它。

root@localhost:~# gcc myCFile.c
root@localhost:~# ./a.out
hello
root@localhost:~#
Run Code Online (Sandbox Code Playgroud)

是不是跟NOEXEC国旗有关系?

我的/etc/fstab文件:

# Begin /etc/fstab
/dev/root    /        ext4        defaults …
Run Code Online (Sandbox Code Playgroud)

filesystems permissions gcc yocto

10
推荐指数
1
解决办法
2462
查看次数

如何在 Linux 中创建 .ko 文件

我在 Linux 中为一台设备编写了一个驱动程序。如何创建(使用gcc.ko文件以便将其插入内核?

linux drivers kernel gcc

9
推荐指数
1
解决办法
3万
查看次数

在 Arch Linux 中编译 C++,存储库中没有 g++ 包

我想在 Arch Linux 中编译一个 C++ 程序,但是没有像 Ubuntu 存储库中那样的“g++”包。

使用-x太多也行不通。像这样:

gcc -x c++ -o myprog myprog.cpp
Run Code Online (Sandbox Code Playgroud)

arch-linux gcc c++

9
推荐指数
1
解决办法
3万
查看次数

是否可以编译和引导 GNU?

不久前发布了新的 Guix 版本。我有一个想法,如果我可以将 glibc、gcc 和 guix 引导到 HURD 和 Mach,我就可以拥有一个非 Linux GNU 系统。但我还需要一些软件,如 bash、emacs、binutils、coreutils、init 系统。是否有任何依赖于 linux 的系统调用?我能像在 LFS 中那样做吗?

gcc glibc hurd

9
推荐指数
1
解决办法
913
查看次数

在 Solaris 11 上安装 GCC-5 后,它在哪里?

请原谅我的无知...我只使用 Solaris 来测试我感兴趣的 C/C++ 库。我不是 Solaris 管理员或 Solaris 用户。

我在 Solaris 11.3、x86 上安装了 GCC-5,因为我需要一个支持的 C++ 编译器-std=c++11(请参见下面的包输出)。Sun 的原生 GCC 是 4.8,它不能很好地支持 C++11(或根本不支持)。

不幸的是,我在安装后找不到它:

$ g++-5 --version
-bash: g++-5: command not found  

$ sudo find /usr -name gcc-5
$ sudo find /bin -name gcc-5
$
Run Code Online (Sandbox Code Playgroud)

为了完整性:

$ /bin/gcc --version
gcc (GCC) 4.8.2
...

$ ls -l /usr/bin/gcc
lrwxrwxrwx   1 root   root   18 Jun  7  2016 /usr/bin/gcc -> ../gcc/4.8/bin/gcc

$ which gcc-5
no gcc-5 in /usr/local/bin /usr/local/sbin /bin /sbin /usr/bin /usr/sbin …
Run Code Online (Sandbox Code Playgroud)

solaris gcc package-management ips

9
推荐指数
2
解决办法
6044
查看次数

“LSB 可执行文件”(ET_EXEC)和“LSB 共享对象”(ET_DYN)有什么区别?

有两个文件,一个编译并链接,gcc另一个手动使用nasmld我得到

  • ELF 32 位 LSB 共享对象...
  • ELF 32 位 LSB 可执行文件...

这两件事有什么区别?我可以看到readelf -h那个是

  • 类型: DYN (Shared object file)
  • 类型: EXEC (Executable file)

我可以在维基百科ET_DYNET_EXEC上看到这些记录。这两者之间有什么实际区别?

gcc elf ld

9
推荐指数
1
解决办法
7865
查看次数