Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何知道共享库二进制文件是否使用-fPIC选项构建_Linux_Shared Libraries_Fpic - Fatal编程技术网

Linux 如何知道共享库二进制文件是否使用-fPIC选项构建

Linux 如何知道共享库二进制文件是否使用-fPIC选项构建,linux,shared-libraries,fpic,Linux,Shared Libraries,Fpic,我在嵌入式Linux环境下工作。我有一组二进制格式的共享库(我没有源代码和Makefile),我想检查它们是否使用-fPIC选项编译。是否有任何工具或方法来测试共享库二进制文件是否编译为-fPIC 问候 请参阅排序“objdump-d file>file.out”和检查file.out以获得某种类型的直接内存引用,不要认为存在这种情况。@Mats:在生成objdump-d之后,我可以根据哪些参数或在file.out中签名来确定是否使用了-fPIC?objdump-d的意思是“反汇编代码”。要进行

我在嵌入式Linux环境下工作。我有一组二进制格式的共享库(我没有源代码和Makefile),我想检查它们是否使用-fPIC选项编译。是否有任何工具或方法来测试共享库二进制文件是否编译为-fPIC


问候

请参阅排序“objdump-d file>file.out”和检查file.out以获得某种类型的直接内存引用,不要认为存在这种情况。@Mats:在生成objdump-d之后,我可以根据哪些参数或在file.out中签名来确定是否使用了-fPIC?objdump-d的意思是“反汇编代码”。要进行检查,您基本上必须扫描代码中的可重定位地址引用。即使是一个图书馆,我也不想依赖这种方法。换句话说,你不能用任何简单的方式做你想做的事情。您可能会编写一段代码来扫描可执行文件(.so或其他内容)以查找“可疑的中继条目”,但这远不能保证是容易的——当然,如果您为x86编写一些东西,它可能需要为x86-64进行更改,并且几乎肯定需要为ARM或MIPS体系结构进行更改。