问题标签 [gnu-toolchain]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
370 浏览

gcc - some-prefix-gcc 和 gcc --target=some-prefix 有什么区别?

我想使用另一个版本的gcc(更新),但不想替换原来的<some-prefix>-gcc可执行文件。

我必须使用哪些编译器标志来模拟<some-prefix>-gcc行为?我在构建过程中知道--prefix--target标志,但我不想构建特定版本的 gcc。

/my/new/gcc --target=some-prefix不同工具链 ( <some-prefix>-ld, <some-prefix>-as)中的问题。因此,我想将我的 GCC 版本用作前端,将原始工具链用作后端(不仅是可执行文件,还包括/库)。

哪些附加标志可以帮助我告诉gcc使用<some-prefix>-asas 后端?

0 投票
1 回答
845 浏览

linux - Mips 和 mipsel 工具链为同一可执行文件提供不同的堆栈信息

我有一个测试应用程序,我首先使用 'mips-linux-gnu-gcc -EL ' 编译以创建 "exec_sigma" ,然后使用 'mipsel-linux-uclibc-gcc' 来创建 "exec_bcm" 。

在对这些可执行文件进行了 readelf 之后,我有很多不同之处。我主要关心 .debug_info 部分的差异

在 elf_sigma :它是:

[33] .debug_info MIPS_DWARF 00000000 01357b 02fa1e 00 0 0 1

[34] .debug_abbrev MIPS_DWARF 00000000 042f99 0040cd 00 0 0 1

在 elf_bcm 中:它是:

[32] .debug_info MIPS_DWARF 00000000 02329b 0058ba 00 0 0 1

[33] .debug_abbrev MIPS_DWARF 00000000 028b55 000619 00 0 0 1

这种差异(大小)导致我的应用程序中的错误进行堆栈跟踪。它适用于 mips-linux-gnu-gcc -EL,但不适用于 mipsel-linux-uclibc-gcc。我想知道为什么相同可执行文件的部分存在这种差异,这是否正常?

感谢您阅读问题..

0 投票
1 回答
817 浏览

linux-kernel - ARM/DSP Linux 工具链内核设置

我们有一个项目需要设置一个环境来开发嵌入式系统作为 FC17 AMD64 上的主机并以 ARM/DSP Omap l138 为目标。

因此,必须生成内核头文件才能绑定主机和目标之间的开发环境通信。因此,它被安装:

构建步骤:

任何建议可能是什么问题?

高度赞赏所有意见和建议。

0 投票
1 回答
1299 浏览

android - 适用于 Android 的良好预建 GNU 工具链?

我目前使用的是 Android 的 NDK 中的独立工具链,但是交叉编译程序似乎相当困难,因为 NDK 中提供的库缺少很多东西。

我已经binutils使用 NDK 独立工具链构建并全部编译(虽然我还没有测试过二进制文件是否真的有效),但是当它遇到GCC时变得相当困难。

我在Gnash 的网站上看到了一个可以下载的工具链和 sysroot ,但是当我尝试在我的计算机上运行它时它不起作用,因为该软件包只是从其原始环境中打包的,可移植性很差。

我想知道是否还有其他预构建的 GNU 工具链可用于在 Android 上构建 Thinsg?

谢谢!

0 投票
2 回答
907 浏览

c++ - 在代码中实施自定义规则 (C/C++)

g++ 验证预定的规则和约束集,如果在代码中未满足这些规则和约束,则会引发错误或警告消息。是否可以使用某些工具为自定义规则集创建解析器,例如“需要显式初始化全局变量”(我知道全局变量是隐式初始化的),或者已经调用了名为 init 的函数(我知道构造函数但是不想使用它们)。任何指向快速简单的东西的指针都会很有用。

0 投票
2 回答
3073 浏览

gcc - 为基于 MIPS 的代码源工具链编译参数?

我在我的 WIN 7 机器上安装了用于 mips32 架构的 codesourcery 交叉编译工具链。我想首先为我的路由器编译一个基于 MIPS32 的简单“阶乘”二进制文件。从网上的小搜索,我发现它是基于 MIPS32 big-endian 的。

路由器的 LIB 目录包含:

ld-uClibc.so.0 libc.so.0 libcrypt.so.0 libcrypto.so.0.9.7 libdl.so.0 libm.so.0 libnvram.so libpsi.so libpsixml.so libresolv.so.0 libssl。 so.0.9.7 libutil.so.0 libwlbcmcrypto.so libwlbcmshared.so libwlctl.so 模块

工具链信息:(在主机 WIN 7 系统上)



我尝试了以下编译参数:

  1. mips-linux-gnu-gcc -mips32 -muclibc -o factorial factorial.c

当我在 MIPS 机器上运行输出二进制文件时,它只打印了“无法加载库 'libgcc_s.so.1'”。

  1. mips-linux-gnu-gcc -muclibc -mips32 -static-libgcc -s -o factorial factorial.c

当我运行它的输出时,它会打印“sigsegv”。

这里有什么问题?我应该输入什么编译器参数?请帮我。

0 投票
1 回答
402 浏览

assembly - LPC2103中的ARM7不支持CLZ吗?

我只在谷歌上搜索了几个小时左右,但如果有人对此有一个快速的答案,我想回到编程。这是我的错误:

我也尝试过使用 -mcpu=arm7tdmi,这是 Coridium 用于我正在使用的板子 ARMmite v.2 的代码的。但他们的代码中显然没有任何 clz 指令。我的问题是,它是否可以工作,只是我的汇编程序没有意识到它,或者这个芯片真的没有实现CLZ?

[更新:根据http://www.keil.com/dd/chip/3974.htm, arm7tdmi-s 是正确的架构规范]

[进一步更新:我手动编写了指令,.word 0xe16f0f10而不是预期的未定义指令错误,我得到了数据中止。奇怪的。]

0 投票
2 回答
310 浏览

gcc - 在编译时检查工具链配置

有没有一种在编译时检查(gcc)编译器配置的好方法(从 Makefile 中或从 C 源文件中)。我想检查正在使用的编译器是否对正在编译的代码有足够的支持,如果没有,我希望它立即失败,并显示一条明确的消息,要求用户升级他们的工具链。

谢谢

约翰

0 投票
1 回答
148 浏览

gcc - 如何找到用于为我正在使用的 gcc 创建 makefile 的配置选项/glags?

我从一些芯片组制造商那里获得了 mips-gcc 工具链源代码和二进制文件。我想构建工具链的源代码,但我不知道用于构建源代码的配置选项/标志。有什么办法可以让我获得这些选项标志吗?

0 投票
1 回答
543 浏览

gcc - DMD 在带有强化 GCC 的 Ubuntu 12.10 64 位上生成可执行段错误

我在让 DMD 2.061 处理我的 Ubuntu 12.10 配置时遇到问题。

当我第一次使用以下脚本安装它时

一切正常。

但...

然后突然在我从一些 Ubuntu PPA 安装了我最喜欢的软件后,代码dmd 会生成段错误。由于我使用了很多额外的 PPA,因此要找出导致崩溃的 PPA 并不容易。我已经在默认(未修改)用户上尝试过这个。

具体命令

其中f.d包含

崩溃为

接下来我尝试比较 dmd 使用的所有动态库的 sha1sum,然后是我的程序:

到我的电视系统上默认安装的没有额外 PPA 的那些。

事实证明,情况/usr/lib/x86_64-linux-gnu/libstdc++.so.6有所/lib/x86_64-linux-gnu/libgcc_s.so.1不同。

然后我将这些文件复制到我的原始系统并使用

LD_PRELOAD=libstdc++.so.6:libgcc_s.so.1

但是......我仍然得到同样的段错误......我迷路了。否则到底是什么导致了这个问题?我应该开始比较 dmd 和我的程序读取的文件(由 strace 收集)吗?

我的系统与 gcc、g++ 一起在其他地方工作。所以我发布这个是希望我的配置可能发现了从 DMD 生成的代码中的一个漏洞。

最后,我在失败的系统上打印一些关于编译器版本的默认值

在我的工作中(没有额外 PPA 的 Ubuntu 12.10)

根据gdb rdmd运行f.d它崩溃gc_init()

我终于尝试从源代码构建 dmd 但具有相同的段错误结果。