问题标签 [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 - 如何获取当前平台的 BFD 架构规范?
我使用以下方法在 C 程序中嵌入了一个文本文件:http ://www.linuxjournal.com/content/embedding-file-executable-aka-hello-world-version-5967
objcopy需要使用“--output”选项指定目标。
如何在 Makefile 中设置“--output”,以便 objcopy 使用用户的架构?
谢谢。
gcc - 具有过多链接时间的 ARM 交叉编译器
我目前正在使用设备制造商提供的各种工具链将大型代码库移植到多个 arm 平台。如果我在 linux 上构建和链接代码库,链接大约需要 30 秒。对于我拥有的许多交叉编译器来说,这个时间大致相同,但对于其中几个来说,这个时间超过了 10 分钟以上。我已经尝试了许多技术来降低这个但没有任何帮助(例如创建一个超级库)。唯一显着不同的是与 -0 链接,这将时间缩短了近 40%,但仍然留给我 6 分钟的链接,并且在调试期间也不太理想,因为大部分代码都被优化了。
是什么让一个交叉编译器比其他编译器慢得多?一般来说,这些编译器的特性几乎相同(ARMv7、NEON 支持、gcc 4.x)。
有什么建议可以改善链接时间吗?我链接到 3 个静态库,其余的是到系统库的动态链接。
cross-compiling - 如何在工具链中添加 g++ 支持
我想在我的工具链中添加对 g++ 编译器的支持。我正在为 powerpc 平台构建工具链。我搜索了一下,发现我们必须在现有工具链中添加外部工具链。
我想创建这个二进制文件:CXX = powerpc-linux-uclibc-g++
我正在使用 buildroot 版本 2010.02 和 uClibc 版本 0.9.30.2 gcc 版本 4_3_4。有什么建议吗?
c - 使用 gnu 工具链编译无依赖二进制文件的基础知识
我正在尝试使用SoX使我创建的音频文件变慢,尽管我可以轻松地在我经常使用的 linux 机器上编译源文件,但我需要将二进制文件传输到另一台具有有限权限和内存的 linux 机器。我试图将二进制文件从我机器上的 usr/local/bin 文件夹复制到另一台,但它找不到函数引用。
是否有一种标准方法来编译没有依赖项的二进制文件,如果没有,我如何设置 SoX 二进制文件,以便当我在临时文件夹中只有写权限时它可以看到正确的依赖项?
c++ - GDB 找不到行号,objdump 可以
我正在使用 DDD/GDB 调试在 NintendoDS 上运行的自制游戏,使用“arm-eabi-gcc (devkitARM release 32) 4.5.1”构建。仅供参考,我上传了未剥离的 .elf 二进制文件(文件不再托管),以防有人想重现以下某些步骤。
我要求 gdb 列出 GameScript.o (GobExpression::eval) 中的一个函数,它处理得很好。
我向 gdb 询问 SimpleGob::play 的列表,在同一个 GameScript.o 中,它抱怨“No line number known for SimpleGob::play”。(arm-eabi-gdb 会话就在下面:)
arm-eabi-gdb AppleAssault.elf
但是,如果我调用 arm-eabi-objdump -drl AppleAssault.elf,它显然会找到一些行号,正如转储中提到的那样:
文件是用 编译的arm-eabi-g++ -MMD -MP -MF /beetle/hobby/DS/dsgametools/branches/companim/libgeds/build/GameObject.d -g -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork {include path stripped} -DARM9 -fno-rtti -Wall -O2 -c /beetle/hobby/DS/dsgametools/branches/companim/libgeds/source/GameObject.cpp -o GameObject.o
,因此启用了调试符号,打包在 .a 存档中,最后与程序链接。用 -O0 重新编译似乎没有帮助。
我在GDB 看到了一个解决方法,找不到建议使用 add-symbol-file 的行号,虽然我不太清楚我要添加哪个符号文件......我是否错过了 GDB 调试的一个微妙的关键概念可以解释我的程序缺少什么(某些部分)的符号,以便 GDB 能够用行号对其进行注释?
ios - 'strcmp' 未在此范围内声明
我正在使用本教程构建 ios 工具链。当我运行命令 make ENABLE_OPTIMIZED=1 我得到这个输出。
我不知道该怎么做,我的谷歌搜索并没有太大帮助。
linker - 如何在 GCC 中链接不以 lib 开头的库文件?
当我将 libm 等库与 ld 链接时,我需要删除 lib 前缀。如果文件不遵循此命名约定怎么办?除了重命名文件之外,还有其他方法可以链接它吗?
c++ - C++ 编译器 - 常用符号
我有一个关于 C++ 编译器的问题。
C++ 编译器何时会创建一个通用符号?使用 C 编译器,我可以为目标文件提供通用符号,但如果我使用 C++ 编译器 (GNU) 编译相同的代码,我只会得到已定义和未定义的符号。
所以问题是什么情况会导致变量/函数在 C++ 中被编译为常见的?
c++ - C++ 编译器 - 生成的符号类型
我很难找到 C++ 编译器究竟如何决定要定义或未定义的符号。我的意思是如何在 C++ 源代码中知道变量/函数是否将被编译为已定义或未定义的符号。首先,我认为所有已定义的变量/函数都将是已定义的符号,但似乎并非如此。考虑到静态,外部,内联,......关键字,有没有办法准确地确定这一点?
*更新问题不在于 C++ 中的定义和声明,也不在于我的代码是否可以编译。现在我认为如果我编译代码并使用 nm 检查目标文件,一些仅在 C++ 源代码中声明的函数/变量会成为定义的符号。我需要这些信息:已定义/声明的 C++ 函数/变量如何编译为对象文件的已定义/未定义符号(例如 ELF)。
android - 编译 B2G 时生成错误(make gonk)
我正在为 Nexus S 开发 Boot2Gecko。我昨天开始根据Boot2Gecko的说明编译代码。一切都很好,但它没有在一个阶段编译,我收到以下错误:
http://pastebin.com/tPqqwdaF。我认为这里有同样的错误https://github.com/andreasgal/B2G/issues/291
有人可以让我知道如何解决构建错误。任何帮助将不胜感激!