草庐IT

linux - ldd 不适用于动态链接的二进制文件

我有一个使用一堆.so文件的二进制文件。bash-3.00$filefoofoo:ELF32-bitLSBexecutable,Intel80386,version1(SYSV),forGNU/Linux2.6.21,dynamicallylinked(usessharedlibs),notstripped但是如果我在这个文件上运行ldd,它无法获取二进制文件所依赖的.so文件。'bash-3.00$lddfoonotadynamicexecutablebash-3.00$readelf确实显示了二进制文件使用的共享库列表..bash-3.00$readelf-dfooDynamics

linux - ldd 不适用于动态链接的二进制文件

我有一个使用一堆.so文件的二进制文件。bash-3.00$filefoofoo:ELF32-bitLSBexecutable,Intel80386,version1(SYSV),forGNU/Linux2.6.21,dynamicallylinked(usessharedlibs),notstripped但是如果我在这个文件上运行ldd,它无法获取二进制文件所依赖的.so文件。'bash-3.00$lddfoonotadynamicexecutablebash-3.00$readelf确实显示了二进制文件使用的共享库列表..bash-3.00$readelf-dfooDynamics

c - 在 64 位 x86 平台上比较 PIE、PIC 代码和可执行文件有什么区别?

测试是在Ubuntu12.0464位上进行的。x86架构。我对位置独立可执行文件(PIE)和位置独立代码(PIC)的概念感到困惑,我猜它们不是正交的。这是我的快速实验。gcc-fPIC-piequickSort.c-oa_pie.outgcc-fPICquickSort.c-oa_pic.outgcca.outobjdump-Dr-j.texta.out>a1.tempobjdump-Dr-j.texta_pic.out>a2.tempobjdump-Dr-j.texta_pie.out>a3.temp我有以下发现。A.a.out包含一些PIC代码,但只抵制在libcprologue和

c - 在 64 位 x86 平台上比较 PIE、PIC 代码和可执行文件有什么区别?

测试是在Ubuntu12.0464位上进行的。x86架构。我对位置独立可执行文件(PIE)和位置独立代码(PIC)的概念感到困惑,我猜它们不是正交的。这是我的快速实验。gcc-fPIC-piequickSort.c-oa_pie.outgcc-fPICquickSort.c-oa_pic.outgcca.outobjdump-Dr-j.texta.out>a1.tempobjdump-Dr-j.texta_pic.out>a2.tempobjdump-Dr-j.texta_pie.out>a3.temp我有以下发现。A.a.out包含一些PIC代码,但只抵制在libcprologue和

linux - 将共享库打包到elf中

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答它。关闭去年。Improvethisquestion是否有实用程序可以将Elf需要的ALLSO转换为静态,然后将Elf转换为免费的SO?

linux - 将共享库打包到elf中

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答它。关闭去年。Improvethisquestion是否有实用程序可以将Elf需要的ALLSO转换为静态,然后将Elf转换为免费的SO?

linux - 为什么 Linux/gnu 链接器选择地址 0x400000?

我正在Linuxx86_64上试验ELF可执行文件和gnu工具链:我已经(手动)链接并剥离了一个“HelloWorld”测试。s:.global_start.text_start:mov$1,%rax...进入一个267字节的ELF64可执行文件...0000000:7f454c46020101000000000000000000.ELF............0000010:02003e0001000000d400400000000000..>.......@.....0000020:40000000000000000000000000000000@...............00

linux - 为什么 Linux/gnu 链接器选择地址 0x400000?

我正在Linuxx86_64上试验ELF可执行文件和gnu工具链:我已经(手动)链接并剥离了一个“HelloWorld”测试。s:.global_start.text_start:mov$1,%rax...进入一个267字节的ELF64可执行文件...0000000:7f454c46020101000000000000000000.ELF............0000010:02003e0001000000d400400000000000..>.......@.....0000020:40000000000000000000000000000000@...............00

c - "__gmon_start__"符号是什么?

我正在使用gcchello.c-ohello-O3编译这段代码:#includeintmain(void){printf("Helloworld\n");return0;}当我列出我得到的搬迁时:test@southpark$readelf-rhello|grepgmon080495a400000106R_386_GLOB_DAT00000000__gmon_start__080495b400000107R_386_JUMP_SLOT00000000__gmon_start__当我在这个文件中列出符号时,我得到:test@southpark$readelf-shello|grepgmo

c - "__gmon_start__"符号是什么?

我正在使用gcchello.c-ohello-O3编译这段代码:#includeintmain(void){printf("Helloworld\n");return0;}当我列出我得到的搬迁时:test@southpark$readelf-rhello|grepgmon080495a400000106R_386_GLOB_DAT00000000__gmon_start__080495b400000107R_386_JUMP_SLOT00000000__gmon_start__当我在这个文件中列出符号时,我得到:test@southpark$readelf-shello|grepgmo