ld(链接器或加载器)程序将目标文件,归档文件和(参考)共享库组合在一起,将其数据和地址与符号引用一起重定位。链接通常是编译程序的最后一步。
传递给 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 将导致...
我知道gcc中的链接顺序对正确确定符号很重要,但现在我看到结果的可执行文件出现了奇怪的速度问题。我以g++ -...
ld64 segprot 在 MacOS Catalina 上不能工作?
我想在MacOS Catalina (64位)上创建一个二进制文件,其中的数据段可以被执行(详情见这里),但从一开始就不能执行。我用gcc -nostdlib制作二进制文件 ...
有几个内存区域MEMORY { rom1 (rx) : ORIGIN = 0x00000000, LENGTH = 256k rom2 (rwx) : ORIGIN = 0x10000000, LENGTH = 16M ram1 (rw!x) : ORIGIN = 0x20000000, LENGTH = ...。
Mingw GCC Linker在使用std选项标志时出现了抱怨。
我使用的是Mingw的gcc编译器,但是当我开始使用-std选项时,链接器开始抱怨引用的问题(除了-std=gnuXX)。我找不到任何有关这方面的资料(也许我真的 ...
我有这样的asm代码: format ELF public _start extrn _kernel_main section ".text" executable _start: movzx edx, dl push edx push esi push ebx call _kernel_main @@: jmp @b ...。
我有这样的asm代码: format ELF public _start extrn _kernel_main section ".text" executable _start: movzx edx, dl push edx push esi push ebx call _kernel_main @@: jmp @b ...。
未定义的 "SetLastError@4 "引用是什么意思?
我使用mingw-w64在windows上部署C++,一切正常,只是在使用库函数时,运行时会报出以下问题d:mingw-w64bin.libgccmingw329.2.0......。
为什么会出现此错误:对bfopen(char const *,int)的未定义引用?我创建了一个共享库,其中包括bfopen函数的函数定义。 ...