问题标签 [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.
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>-as
as 后端?
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。我想知道为什么相同可执行文件的部分存在这种差异,这是否正常?
感谢您阅读问题..
linux-kernel - ARM/DSP Linux 工具链内核设置
我们有一个项目需要设置一个环境来开发嵌入式系统作为 FC17 AMD64 上的主机并以 ARM/DSP Omap l138 为目标。
因此,必须生成内核头文件才能绑定主机和目标之间的开发环境通信。因此,它被安装:
构建步骤:
任何建议可能是什么问题?
高度赞赏所有意见和建议。
android - 适用于 Android 的良好预建 GNU 工具链?
我目前使用的是 Android 的 NDK 中的独立工具链,但是交叉编译程序似乎相当困难,因为 NDK 中提供的库缺少很多东西。
我已经binutils
使用 NDK 独立工具链构建并全部编译(虽然我还没有测试过二进制文件是否真的有效),但是当它遇到GCC
时变得相当困难。
我在Gnash 的网站上看到了一个可以下载的工具链和 sysroot ,但是当我尝试在我的计算机上运行它时它不起作用,因为该软件包只是从其原始环境中打包的,可移植性很差。
我想知道是否还有其他预构建的 GNU 工具链可用于在 Android 上构建 Thinsg?
谢谢!
c++ - 在代码中实施自定义规则 (C/C++)
g++ 验证预定的规则和约束集,如果在代码中未满足这些规则和约束,则会引发错误或警告消息。是否可以使用某些工具为自定义规则集创建解析器,例如“需要显式初始化全局变量”(我知道全局变量是隐式初始化的),或者已经调用了名为 init 的函数(我知道构造函数但是不想使用它们)。任何指向快速简单的东西的指针都会很有用。
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 系统上)
我尝试了以下编译参数:
mips-linux-gnu-gcc -mips32 -muclibc -o factorial factorial.c
当我在 MIPS 机器上运行输出二进制文件时,它只打印了“无法加载库 'libgcc_s.so.1'”。
mips-linux-gnu-gcc -muclibc -mips32 -static-libgcc -s -o factorial factorial.c
当我运行它的输出时,它会打印“sigsegv”。
这里有什么问题?我应该输入什么编译器参数?请帮我。
assembly - LPC2103中的ARM7不支持CLZ吗?
我只在谷歌上搜索了几个小时左右,但如果有人对此有一个快速的答案,我想回到编程。这是我的错误:
我也尝试过使用 -mcpu=arm7tdmi,这是 Coridium 用于我正在使用的板子 ARMmite v.2 的代码的。但他们的代码中显然没有任何 clz 指令。我的问题是,它是否可以工作,只是我的汇编程序没有意识到它,或者这个芯片真的没有实现CLZ?
[更新:根据http://www.keil.com/dd/chip/3974.htm, arm7tdmi-s 是正确的架构规范]
[进一步更新:我手动编写了指令,.word 0xe16f0f10
而不是预期的未定义指令错误,我得到了数据中止。奇怪的。]
gcc - 在编译时检查工具链配置
有没有一种在编译时检查(gcc)编译器配置的好方法(从 Makefile 中或从 C 源文件中)。我想检查正在使用的编译器是否对正在编译的代码有足够的支持,如果没有,我希望它立即失败,并显示一条明确的消息,要求用户升级他们的工具链。
谢谢
约翰
gcc - 如何找到用于为我正在使用的 gcc 创建 makefile 的配置选项/glags?
我从一些芯片组制造商那里获得了 mips-gcc 工具链源代码和二进制文件。我想构建工具链的源代码,但我不知道用于构建源代码的配置选项/标志。有什么办法可以让我获得这些选项标志吗?
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 但具有相同的段错误结果。