我有一个ELF文件,它从一个库的X版本链接到一个共享目标文件。我只能访问该库的Y版本中的共享目标文件版本。当我尝试运行ELF文件时,我得到了<ELF filename>: <shared object filename>: version X not found (required by <ELF filename>)。安装库的Y版本现在不是我的选择。有没有办法强制ELF文件忽略版本不匹配并尝试运行?我可以欺骗ELF文件或以某种方式编辑共享目标文件来更改外观版本吗?
我使用objcopy提取/替换某些部分是windows系统上的ELF文件。
>objcopy.exe -V
GNU objcopy 2.17.50 20060824
Copyright 2005 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
这在一般情况下是可行的。
但我的精灵文件
我在归档文件中下载了更新过的lib侏儒版本。解压缩文件并运行以下命令
cd dwarf-2013-02-07/libdwarf
./configure --enable-shared
make
我得到了以下编译错误。我也不知道原因。我尝试了许多其他版本,并得到了同样的错误。
cd libdwarf && make
make[1]: Entering directory `/home/lihao/Downloads/dwarf-20151114/libdwarf'
echo "do nothing " none
do nothing none
gcc
我正试图为asm文件的交叉编译编写一个制作配方。问题是,我想使用regex作为输出目标的makefile先决条件,因为这些程序集文件是以某种程度上的自动方式生成的。
因此,它们的名称遵循以下模式:
1_mps.S # i want this to be compiled into 1_mps.elf
2_mps.S # i want this to be compiled into 2_mps.elf
3_mps.S # i want this to be compiled into 3_mps.elf
等等..。
我正试图在Makefile文档中找到这个有点动态的规则定义的适当处理方法,但是