ld(链接器或加载器)程序将目标文件,归档文件和(参考)共享库组合在一起,将其数据和地址与符号引用一起重定位。链接通常是编译程序的最后一步。
错误:使用“ld”链接可重定位的 NASM ELF 时未定义对“scanf”的引用
我有一个使用以下命令编译的 NASM 程序集文件: nasm -felf64 -g -Fdwarf groundFloor.asm -o file.o 其中 groundFloor.asm 是我的 NASM 文件。使用 ld file.o -o file 给我一个 undef ...
带有“-print-memory-usage”的 ld 输出的奇怪行为
我正在尝试获取微控制器使用 RAM 和闪存部分的百分比。 这是链接器文件。 (工具链:xPack for RISC-V、GCC-12.2) 当我使用第一个符号时: .stack O...
无法在 MacOS Monterey 上编译 fortran:ld:YAML 文件中不支持的 tapi 文件类型 '!tapi-tbd'
每当我尝试编译 Fortran 代码时,我都会遇到错误: % gfortran Testing_Fortran.f90 -o Testing_Fortran ld: YAML 文件 '/Library/Developer/
gcc/ld:使用-Wl,-rpath -Wl调用TensorflowLite库
我正在使用 Pybind11 运行在 Python 中使用 TensorflowLite 的 C++ 库。目前我有以下项目结构: 项目结构: *include: (带头文件的文件夹) ---- 模...
是否有 MSVC 的链接器开关 /VERBOSE 的 Linux 模拟?
在 MSVC 上,当我添加链接器开关 /VERBOSE 时,我能够跟踪各个函数的链接解析,从而跟踪库链接的原因: -Wl,--verbose 不一样......
在 Mac 上使用 std::ofstream 时如何解决未定义的符号
更新:我也包括对 ld 的孤立调用。并提供第二个示例 main 函数,该函数成功编译、链接和调用 std:: 方法。两者都出现在 t 的末尾...
Linuxbrew如何使用llvm或gcc-12提供的标准库,而不使用系统stdc++?
我用brew安装了gcc-12 glibc llvm,我用clang编译了一个程序,但是这个程序依赖于系统stdc++和ld,而不是llvm提供的。 那么我怎样才能使clang编译的程序依赖...
传递给 gcc/g++ 的 -l(小写“L”)标志的含义是什么?我在哪里可以找到有关它的文档或教程? 我试过在 man gcc 和 man ld 中搜索 -l,但是那有...
传递给 gcc/g++ 的 -l(小写“L”)标志的含义是什么?我在哪里可以找到有关它的文档或教程? 我试过在 man gcc 和 man ld 中搜索 -l,但是那有...
静态链接使用 fPIC 编译的 libgomp.a 时找不到符号的版本节点
我正在尝试使用 -fPIC 重新编译旧版本的 gcc/gfortran,以便我能够使用 -fPIC 编译对象静态链接库 # gcc/gfortran 配置和编译 ...
我正在尝试做 ld -r -o 测试.o lib.a 它有效,但 test.o 最终成为非常小的文件,即使 lib.a 是一个大文件。 但如果我这样做 ld -r -o test.o obj1.o obj2.o 等 它似乎工作。只是……
如何在基于 arm gcc make 的编译中不包含 C 文件
在我的arm cortex-m项目中,我使用cmake生成makefile并运行make编译项目。如果我细读从 LD 输出的地图文件,它已经链接到一个甚至没有使用过的目标文件中
x86-64 程序集:GCC 出现分段错误,但 ld [重复] 不会出现分段错误
我正在使用 nasm 进行 x86-64 汇编。我的任务是编写一个代码,接受一个数字作为命令行参数并将其转换为整数。使用 ld linke 链接时代码正常工作...
我正在尝试使用 GNU LD 链接 64 位内核 ELF。我有一个名为 lowerhalf 的可执行部分,然后是其他常用部分。我使用的链接描述文件是这个 条目(内核兼容性模式状态...
为什么链接需要这么长时间? Godot + Scons [关闭]
我正在使用 Scons 构建一个中型 C++ 项目 (Godot)。在我的机器上,有 16MB RAM,构建后(所有目标文件都存在),我更改一个文件,目标文件很快重新编译,...
使用 GNU LD w 16-bit x86 的相对地址不正确。
首先,我的原生系统是amd64,Windows,使用cygwin,以及GNU工具链和binutils。我正在写一个x86的bootloader,但是不能让ld生成正确的相对地址。我已经准备好了...
如何在运行时解析dll中的外部符号,而不是在Cygwin的链接时解析。
我正在将一组程序从linux移植到Windows+Cygwin上。这套程序的主共享库指的是在使用共享库的程序中声明的一些常量外部符号。我没有...
为什么动态链接器要*减去虚拟地址来找出加载的共享库可执行文件在内存中的位置?
根据ld源码这里的dl_main。如果不了解phdr传入dl_main的上下文,我有点不明白为什么main_map的加载地址是通过减去虚拟地址推导出来的......。
我遇到了一个链接器错误(编译时,不是运行时):ld: library not found for -l:usrliblibobjc.A.dylib 这只是最新版本的错误。我试图对usrlib进行链接... ...
当在Linux上执行一个动态链接的可执行文件时,动态链接器作为它的解释器被调用(在这个答案中描述)。如果我的理解是正确的,运行: $ .dynamic_elf 将导致...