gpt4 book ai didi

gcc - 如何设置共享库的动态链接器路径?

转载 作者:行者123 更新时间:2023-12-04 20:56:54 28 4
gpt4 key购买 nike

我想用 .interp 编译一个共享库部分。

#include <stdio.h>

int foo(int argc, char** argv) {

printf("Hello, world!\n");
return 0;

}

我正在使用以下命令。
gcc -c -o test.o test.c
ld --dynamic-linker=blah -shared -o test.so test.o

我最终没有 INTERP 段,好像我从未通过 --dynamic-linker=blah选项。查看 readelf -l test.so .生成可执行文件时,链接器正确处理该选项并将 INTERP 段放入程序头中。如何让它也适用于共享库?

最佳答案

ld如果 -shared,则不包含 .interp 部分使用,正如@MichaelDillon 已经说过的。但是,您可以自己提供此部分。

const char interp_section[] __attribute__((section(".interp"))) = "/path/to/dynamic/linker";

上面的行将使用 GCC attributes 在 .interp 部分保存字符串“/path/to/dynamic/linker” .

如果您正在尝试构建一个本身也可执行的共享对象,请检查 this question出去。它对过程有更全面的描述。

关于gcc - 如何设置共享库的动态链接器路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4488937/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com