我有一个项目,我需要删除ELF文件的一部分,并将其替换为内容略有修改的另一部分。 我能够首先删除原始部分,然后使用objcopy添加我想要的部分。但我总是得到警告:
warning: allocated section `.nv_fatbin' not in segment
这导致该部分未被加载到存储器中,因此未实现期望的功能。
添加它并将其重新带入细分市场的最佳方式是什么?
libelf? 或者这可以使用objcopy来实现吗?
答案 0 :(得分:2)
您可能想要使用objcopy&#39; template <typename T>
friend ostream& operator <<(ostream& out, Vector<T> x);
template <typename T>
friend bool operator == (const Vector<T> &lop, const Vector<T> &rop);
选项。
从objcopy手册(https://sourceware.org/binutils/docs/binutils/objcopy.html)中提取:
- update-section sectionname = filename
使用文件filename的内容替换名为sectionname的节的现有内容。该部分的大小将调整为文件的大小。 sectionname的section标志将保持不变。对于ELF格式文件,段到段的映射也将保持不变,这是使用--remove-section后跟--add-section无法实现的。该选项可以多次指定。
注意:这需要binutils v2.26或更高版本。