ld相关内容

使用已安装的GCC-4.5.3时出现编译错误(ld:找不到libmvec_nonshared.a,libmvec.so.1).

从GCC 4.6版开始,无法使用GCC-4.8.5打印回溯或stackdump,默认设​​置已更改为-fomit-frame-pointer.通过使用--enable-frame-pointer configure选项配置GCC,可以将默认值还原为-fno-omit-frame-pointer.因此,我使用下面的配置选项在自己的主目录中安装了GCC-4.5.3. 配置选项: ../gcc-4 ..
发布时间:2021-05-29 20:05:17 其他开发

在标准库中静态链接时如何支持动态插件?

假设使用 g ++ 构建应用程序 myapp.exe ,并且使用标志 -static-libstdc ++ 以便将其安装在没有 libstdc ++.so 的环境. myapp.exe 还为某些功能 plugf 添加了插件支持,该功能可以通过 dlopen 从分片库动态加载. 如果 libplug.so 是一个也链接到 libstdc ++ 的插件库,那么如何才能与 myapp一起使用.ex ..
发布时间:2021-05-29 20:05:14 C/C++开发

在MinGW中手动链接标准库

我很难让MinGW识别CSFML库.我不得不使用链接器手动链接每个库.现在,我没有从简单的gcc调用自动链接的标准库. bbroo @ DESKTOP-1F1J3SM〜/Shaders$ ld shaders.o libcs​​fml-system.a libcs​​fml-window.a libcs​​fml-graphics.a csfml-system-2.dll csfml-wind ..
发布时间:2021-05-29 20:05:11 其他开发

如何将共享库列入黑名单以避免加载程序将其获取?

我试图强制用于内置源的内部编译器不依赖主机中安装的共享库,而不必卸载它们. 尽管存在一个 LD_PRELOAD 环境变量,该变量强制加载程序(ld-linux)在执行其他操作之前先获取指定的共享库,但我想做相反的事情,迫使加载程序 LD_NEVERLOAD 变量). 是否有某种方法可以在不破坏我的整个系统的情况下(也就是删除此类库)? PS:我已重命名系统库以测试此特定用例,但这 ..
发布时间:2021-05-29 20:04:49 服务器开发

如何防止ld添加.note.gnu.property?

我有一个玩具x86汇编程序,我正在用 as 和 ld 编写和编译: .text.global _start_开始:movq $ 1,%raxmovq $ 0x7FFFFFFF,%rbxL1:cmp%rbx,%rax杰L2addq $ 1,%raxjmp L1L2:movq%rax,%rbxmovq $ 1,%rax整数$ 0x80 然后构建: 为-o test.o test.Sld -s ..
发布时间:2021-05-29 20:04:46 其他开发

gcc链接器错误:找不到符号的版本节点

我正在尝试构建共享库,但出现以下错误: libavformat.so:找不到版本节点用于符号av_dup_packet @ LIBAVFORMAT_52 ld:无法设置动态部分的尺寸:差的价格 有人知道这个错误是什么意思吗?主机是i586-linux,目标是arm-linux 修改:已解决,请查看评论 解决方案 它是由内联汇编指令 .symver 引起的.我的解决方案是 ..
发布时间:2021-05-29 20:04:44 其他开发

如何将ld -Ttext选项转换为链接脚本?

我已经找到了有关创建操作系统的教程,并且正在尝试将make文件中的链接部分转换为链接脚本. 这里是教程: https://github.com/ghaiklor/ghaiklor-os-gcc 以下是制作文件: SOURCES = $(shell查找cpu驱动程序包括内核libc -name'* .c')HEADERS = $(shell查找cpu驱动程序包括内核libc -nam ..
发布时间:2021-05-29 20:04:40 其他开发

在链接描述文件中提取存档文件

我正在尝试解决以下问题: 假设我有一个库libxyz.a,创建自: /* main.c */int main(无效){诠释} 使用以下文件进行编译和存档: gcc -c main.c -o abc.o&&ar cr libxyz.a abc.o 我必须如何编写链接程序脚本才能将abc.o准确放置在预期位置? 我试图以这种方式处理它: /* script.ld */SEA ..
发布时间:2021-05-29 20:04:36 其他开发

错误的原因和解决方案-"/usr/bin/ld:找不到-levent"?

在编译使用libevent库的程序时,我使用的是gcc选项-levent.但我收到此错误- /usr/bin/ld:找不到-levent 我的系统上没有libevent,因此我在使用进行编译时会静态链接到它 gcc -o Hello -static -I libevent-1.4.12-stable/hello.c -levent 我该如何解决? 提前谢谢! 解决方 ..
发布时间:2021-05-29 20:04:33 其他开发

Solaris进程如何读取自己的符号表?

我有一个Solaris进程,它是一个由 ld 加载并带有一些 .so 库的C ++应用程序.此应用程序具有一个函数,该函数在调用函数中获取返回地址,然后尝试确定所述调用函数的名称. 如果我为此使用 dladdr(3),它并不总是将我希望看到的内容放在Dl_info :: dli_sname中.看起来它返回的函数名称不是最接近指针值下方或指针值处.如果我获取指针值并查看 nm 的输出,则可以将 ..
发布时间:2021-05-29 20:04:16 C/C++开发

OS X链接器无法从仅包含变量的C文件中找到符号

将C库从Linux(Ubuntu)移植到OS X时,链接器出现问题.C代码是从Matlab自动生成的,因此理想情况下,我不想更改代码本身. 问题似乎出在C文件中,其中仅包含未初始化的变量声明,然后其他C文件对其进行扩展以实现Matlab算法.OS X链接器显然无法识别该文件中的符号.相同的源代码在Linux上可以正常工作,因此我想了解OS X链接器的行为方式是否不同,以及是否可以传递给我一个 ..
发布时间:2021-05-29 20:04:13 其他开发

带Rust的便携式二进制文件

我在构建带有rust的可移植可执行文件时遇到问题. 在Ubuntu上运行仅使用 cargo build 构建的可执行文件失败 ./test:/lib/x86_64-linux-gnu/libc.so.6:找不到版本'GLIBC_2.14'(./test必需) 使用 rustc ... -C link-args = -static 进行的构建无法正确链接( ld ./test 的输出) ..
发布时间:2021-05-29 20:04:09 其他开发

如何在Mac OS X中获得指向二进制节的指针?

我正在编写一些代码,这些代码将一些数据结构存储在一个特殊的命名二进制节中.这些都是同一结构的所有实例,它们分散在许多C文件中,并且不在彼此的范围之内.通过将它们全部放在命名部分中,我可以遍历所有它们. 这与GCC和GNU ld完美配合.由于缺少 __ start ___ mysection 和 __ stop ___ mysection 符号,因此在Mac OS X上失败.我猜llvm ld ..
发布时间:2021-05-29 20:04:03 其他开发

为什么STM32 gcc链接程序脚本会自动丢弃以下标准库中的所有输入节:libc.a,libm.a,libgcc.a?

从任何自动生成的STM32CubeMx生成的链接器脚本的底部: /*从标准库中删除信息*//丢弃/:{libc.a(*)libm.a(*)libgcc.a(*)} 从GNU Binutils ld(链接程序脚本)手册中, 3.6.7丢弃输出节: 特殊的输出节名称"/DISCARD/"可用于丢弃输入节.分配给名为"/DISCARD/"的输出节的任何输入节均不包含在输出文件中. 这3 ..
发布时间:2021-05-29 20:03:45 其他开发

使用printf和ld链接程序?

使用NASM在构建定义自己的 _start 而不是 main 的汇编程序时,我得到_printf 的未定义引用.x86-64 Ubuntu 构建命令: nasm -f elf64 hello.asmld -s -o你好hello.ohello.o:在函数_start中:hello.asm :(.text + 0x1a):对'_printf'的未定义引用MakeFile:4:目标“编译"的 ..
发布时间:2021-05-29 20:03:41 服务器开发

无法运行与libc链接的可执行文件

我正在使用以下命令组装世界: nasm -f elf64 test.asm 然后我用这个链接: ld -s test.o -lc 我知道这可行,因为 file a.out 显示了我 a.out:ELF 64位LSB可执行文件,x86-64,版本1(SYSV),动态链接(使用共享库),已剥离 但是,当我使用 ./a.out 运行它时,我会得到 bash:./a.o ..
发布时间:2021-05-29 20:03:37 服务器开发

对于小型程序,链接后的最小可执行文件大小现在比2年前大10倍?

对于大学课程,如果使用gcc/clang与汇编语言编写和编译,我喜欢比较功能相似的程序的代码大小.在重新评估如何进一步缩小某些可执行文件的大小的过程中,当我两年前汇编/链接的同一汇编代码在再次构建后变得大于10倍时,我真不敢相信.不仅对于helloworld,对于多个程序都适用: $ make作为-32 -o helloworld-asm-2020.o helloworld-asm-2020. ..
发布时间:2021-05-29 20:03:35 服务器开发