binutils相关内容

使用flto的要求

如果我想用-flto编译我的项目,用--enable-gold构建gcc是否足够?还是我还需要构建gold并用它替换ld?我还需要其他标志吗?即我正在这样做 gcc -flto one.c two.c 解决方案 根据 https://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements , 尽管名称为"链接时间",但LTO 不需要使 ..
发布时间:2020-04-30 08:31:33 其他开发

正在访问“价值"链接脚本变量未定义行为在C中的行为?

GNU ld(链接程序脚本)手册但是,这样做很容易出错,并且会尝试(错误地)尝试访问链接程序脚本变量的 value 错误而不是其地址,因为这有点深奥.手册(上面的链接)说: 这意味着您无法访问 链接脚本定义的符号的值-它没有值-您所能做的就是访问链接脚本定义的符号的地址. 因此,当您在源代码中使用链接器脚本定义的符号时,应始终使用符号的地址,并且切勿尝试使用其值. 问题:因此,如 ..
发布时间:2020-04-30 08:31:27 其他开发

如何在Mac OS X 10.6上安装GNU LD?

在Macbook Pro上编译本来很好的 Contiki OS 时,我遇到很多麻烦(与Mac OS X 10.6). Contiki实际上使用了许多特定于GNU的功能和GCC,AR,LD等选项.因此,我通过macports安装了这些实用程序,但是看起来"port install binutils"没有安装GNU ld,是吗? 所以,问题是,如何在Mac上获取GNU ld?是否有一种简单的替代 ..
发布时间:2020-04-30 08:31:16 其他开发

如何在Linux上创建存根共享库

首先让我解释一下存根共享库的含义:可用于链接的共享库(带有真实库提供的特定接口),但不包含实际代码(因此没有功能) ). 与头文件一起,它提供了针对库进行开发所需的一切. 存根可以允许在没有可用代码的情况下链接到某个库,但是出于兼容性考虑,链接到某个库的存根可能很有用.例如,请参见在Linux中使用了存根用于标准库.为什么需要存根? 理想情况下,我需要的是一种从符号映射文件生成虚 ..
发布时间:2020-04-23 11:15:12 服务器开发

帮助链接器failer:.gnu.linkonce.t

我无法将使用gcc 3.2.3的共享库链接到binutils 2.18。当我尝试链接库时,出现以下错误: .gnu.linkonce.t _...在章节中引用.rodata:在放弃的.gnu节中定义。 linkonce.t ... 我已经做了相当多的谷歌搜索,大多数地方似乎表明它是一个回归引入binutils 2.17和更高版本固定在2.18.50,但我很好奇,如果有人知道是否有任何特 ..
发布时间:2018-04-21 10:44:10 其他开发

如何在Mac OS X主机上为MIPS目标构建GCC 4.8.x

我试图在运行(10.9)x86_64的Mac OS X主机上为MIPS目标平台构建GCC / binutils。我已经下载了最新版本的binutils和GCC,据我所知,我也通过自制软件安装了GCC 4.8.2。 然而,到目前为止,我一直没有成功在OS X主机上建立GCC / binutils for MIPS arch。 我尝试设置CC环境变量来指向通过自制程序安装的gcc版本,但是 ..
发布时间:2018-04-20 17:40:57 其他开发

如何处理使用binutils链接器的静态库之间的递归依赖关系?

我将现有的系统从Windows移植到Linux。该构建包含多个静态库。我遇到了一个链接错误,其中一个符号(在libA中定义)无法在libB的对象中找到。链接器行看起来像 g ++ test_obj.o -lA -lB -o test 当然问题因为在链接器发现它需要libA中的符号时,它已经传递了它,并且不会重新扫描,所以即使该符号存在,也只是出错。 我最初的想法当然是简单地将链接 ..
发布时间:2018-04-20 17:11:42 其他开发

ELF动态加载器符号查找顺序

在解析动态重定位时,符号查找的搜索顺序是什么? 解析共享库的符号时,加载器首先搜索'main executable'让主要的可执行文件覆盖定义...)或什么?根据我的理解,每个可执行文件都有自己的“可执行文件”查找范围“: 主要的可执行文件通常是”全局“查找范围中的第一个对象。这意味着主可执行文件中定义的符号会覆盖依赖共享库中的符号。使用 LD_PRELOAD 工具添加的共享对象被添加 ..
发布时间:2018-04-20 16:44:27 服务器开发

汇编binutils& amp; amp; gcc在一起?

根据 gcc构建说明,您可以在构建gcc的同时构建binutils(as以及gmp,mpc等)。 以下是该网页所说的内容: 如果您还打算构建binutils (要么升级现有的 安装,要么用来代替操作系统的相应工具 ), 将binutils分发解压缩 或者在同一个目录中,或者 分开。在后一种情况下,将 符号链接添加到任何 组件中,您打算在编译器旁边创建 的binutil ..
发布时间:2018-04-20 16:15:13 其他开发

如何列出非本地二进制文件的库依赖关系?

在为本地平台开发时,我可以使用ldd列出所有共享库(.so文件),我构建的二进制可执行文件将在启动时尝试加载。但是在交叉编译时,我不知道如何获得相同的信息。 ldd 不是普通的binutils工具,例如 strip 或 ar gcc 一起构建,用于交叉编译,相反,它是一个神秘的shell脚本,显然只能在本地平台上运行。 因此,使用跨目标binutils工具,是否有任何方法可以获得外部二进制文 ..
发布时间:2018-04-20 16:15:07 服务器开发

GNU链接器中的-l和-L选项的顺序是否重要?

-l选项告诉链接器在标准目录中搜索库。 使用-L,我们可以指定我们自己的库目录进行搜索。 问题:-L选项的顺序顺序是否也很重要它为-l wrt链接器吗? 此链接: http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html 并没有多说关于-L的序列。 编辑 另外, 命令中指定的目录在默认 目录之前搜索 行 来自手册页 ..
发布时间:2018-04-20 16:03:43 其他开发

使用GCC工具链构建两部分固件映像

我有一些使用基于ARM Cortex M0的微控制器运行的GCC固件。该构建目前生成可以写入微控制器的程序存储器的单个二进制映像。 为了更新现场的原因,我需要将此映像分成两个部分可以单独更新。我会将这些核心和应用称为。 Core :包含中断向量表, main()例程,以及各种驱动程序和库例程。它将位于程序存储器的前半部分。 应用:包含应用程序特定的代码。它将位于程序存储器的后半部 ..
发布时间:2017-08-15 20:40:48 HTML/CSS

gnu ld / gdb:单独的调试文件。当调试信息太多时,如何生成调试文件?

现在有$ / code> gdb 和 binutils 支持将调试信息与要调试的二进制文件分开。描述这一点的文档可以在以下网址找到: gdb:单独的调试文件 objcopy --add-gnu-debuglink,--only-keep-debug ld --build-id 经过一番实验,我可以获得 gdb (7.6)来查找调试信息,使用build-id和debug-link方法 ..
发布时间:2017-04-21 18:47:23 开发方法

如何使用/安装GNU binutils(objdump)

我需要在我的应用程序中使用objdump和readelf命令在Windows上运行。我知道我可以安装cygwin为了使用它们。我不想使用cygwin的原因是因为我想要做文章来部署。加上我不知道如何做一个静默安装cygwin。因此,我认为我需要的是 GNU Utilities For Win32 链接指出这些库是无服务器的。 “可执行文件只依赖于Microsoft C运行时(msvcrt.dll), ..
发布时间:2017-03-09 19:52:20 Linux/Unix

在FreeBSD中建立Gold链接器

我按照 http://llvm.org/docs上的步骤操作/GoldPlugin.html#lto-how-to-build 在FreeBSD上构建gold插件,但是! 有一个指向错误屏幕截图的链接: http://postimg.org/image/anlpuufbl/ 这是它显示的错误消息,所以我也无法得到ld-new。 我选中,并且没有在etc / make.conf中设置C ..
发布时间:2016-11-22 23:51:29 C/C++