- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试链接 C++ 二进制文件,但出现 undefined symbol 错误。我的二进制文件不需要这些符号,我想了解导致链接器(GNU ld 或 GNU gold)认为需要它们的依赖链。 libfoo.a
包含数百个 .o
文件。我的程序正在调用 libfoo.a
中的函数。我想获得一个包含所有 .o
文件的依赖关系图 libfoo.a
链接器认为需要链接我的程序。
我需要它,因为我怀疑 libfoo.a
中某处存在错误,调用了并非真正需要的函数。我可以修改 libfoo.a
的源代码(从而删除不需要的调用),为此我需要了解不需要的调用在哪里。依赖图可以帮助我找到它。
请注意,由于 undefined symbol ,没有生成可执行文件。
请注意,我的最终目标不是构建这个特定的二进制文件,而是确保不会在 libfoo.a
中调用不需要的函数。
我查看了 man ld
,但我找不到任何可以给我更详细输出的命令行标志。
链接器错误示例:
libfoo++.a(foo1.o):foo1.cc:function foo1f: error: undefined reference to 'bar'
我如何找出导致 foo1.o
链接到可执行文件的原因? (对我来说 bar
是未定义的,因为我不需要它。我的问题是 foo1.o
是需要的,但它不应该是,并且我想删除导致 foo1.o
被链接的调用。)
最佳答案
I'd like to get a dependency graph containing all .o files in libfoo.a which the linker thinks are needed to link my program.
用 -M
(或 --print-map
)标志打印的链接器映射恰好包含该信息。如果您使用编译器驱动程序(例如 gcc
)执行链接(您应该),则将 -Wl,-M
添加到链接行。
关于linux - 使 GNU ld 或 GNU gold 显示存档中使用了哪些 .o 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21509907/
我想将空格和换行符视为普通空格。 我想将换行符与其他空格区分开来,以允许特殊情况。 第一次尝试编写兼容语法失败。 语法如下: ! -----------------------------------
让我先声明一下,我是一个与链接器相关的菜鸟。如果我说的话似乎没有意义,那可能没有意义 - 请告诉我。 我有以下文件: bar.rs #[no_mangle] pub extern fn bar(x:
我小组中的其他人构建了 LD 供我的团队使用。我如何判断它是否是使用 --enable-gold 构建的? 最佳答案 检查符号链接(symbolic link) /usr/bin/ld通过 ls -a
使用 GEANT4(大型 Monte Carlo C++ 仿真框架,大量共享库)运行仿真代码。使用黄金链接器和基于标准 BFD 的链接器编译并链接 GEANT 和我的应用程序。看起来金色的跑得更快了一
我正在尝试理解这种位反转算法。我找到了很多资源,但并没有真正解释伪代码的工作原理。例如,我从 http://www.briangough.com/fftalgorithms.pdf 中找到了下面的伪代
当使用链接描述文件在地址空间中布置符号时,ld 允许使用以下内容引用来自静态库的特定符号语法: archive.a:object_file.o(.section.symbol_name) 使用gold
我已阅读 GOLD 主页 ( http://www.devincook.com/goldparser/ ) 文档、常见问题解答和维基百科,以了解 GOLD 可能有哪些实际应用。我一直在考虑让我的系统(
我们一直在使用两个完全相同的软件(Centos 7 OS和BIOS设置)使用相同的Skylake服务器。除延迟性能外,其他所有内容都相同。我们的软件正在使用AVX512。 在测试中,我注意到AVX51
来自 Coursera 的算法工具箱类(class)。 问题介绍 你得到一套金条,你的目标是尽可能多地把金条放进去 你的包。每个栏只有一个拷贝,对于每个栏,您可以接受或不接受 (因此你不能拿一小部分酒
我正在执行发布测试周期。 GNU Linux 的测试之一是与 Gold linker 的集成: export LD=ld.gold make makefile 具有以下识别 Gold 链接器的逻辑:
我正在为 LLVM/Clang 编写自定义 channel ,重新编译往往需要一段时间并使用大量内存。我听说 gold 链接器 (1) 比标准 ld 链接器花费更少的时间并且 (2) 使用更少的内存。
按照本网站的说明进行操作:http://llvm.org/docs/GoldPlugin.html 从命令: ../binutils/configure --enable-gold --enable-
这个问题已经有答案了: java regular expression to extract content within square brackets (3 个回答) 已关闭 9 年前。 我有一个
我遇到了一个小问题。尝试更改样式/添加样式时,我不断收到以下错误: Object Gold has no method 'addClass' 这是我的 .js 文件中的代码: function Ge
在 Linux 上,我想将一些结构存储在自定义 .note.foobar 部分并在运行时发现它们。 我用 gold 一次编译和链接下面的程序,一次没有: $ gcc -o test-ld test.c
我正在尝试将我的默认 arm-eabi-ld 替换为从 binutils-gold ld 安装的,但是在链接过程中我得到了 (..../*.o) requires unsupported dynami
我正在玩弄 Google Sanitizers并且有一个标志 - -fuse-ld=gold。我不确定是否理解 wiki 中的想法页面。 例如使用CMake set(CMAKE_CXX_FLAGS "
我正在试用 Gold Linker,看看它是否会缩短我们应用程序的链接时间。确实如此。有时,我需要使用 GNU Linker。我该怎么做呢? 我使用的是 Ubuntu 10.04,我从包管理器安装了
本文整理了Java中us.ihmc.graphicsDescription.appearance.YoAppearance.Gold()方法的一些代码示例,展示了YoAppearance.Gold()
我正在尝试了解 Delta Lake 的青铜、白银、黄金数据流结构。黄金应该用于商业用途,并准备好通过数据仓库或某些报告服务摄取。 (我理解对吗?)我的问题实际上是通过摄入 Delta Lake 直到
我是一名优秀的程序员,十分优秀!