草庐IT

c++ - Windows 的 objcopy 等价物? (破解冲突库符号)

我正在寻找与GNU工具objcopy等效的Windows。我正在寻找实现suggestionpostedhere对于我的问题,但是我需要跨平台(Windows、Linux和Mac)进行。我在我的googlefriend上找不到答案,所以也许解决方案需要以不同的方式实现。谢谢! 最佳答案 默认MSVC工具的一部分:LIB/EXTRACT提取对象的拷贝;LIB/REMOVE然后将其从库中删除。我认为LIB/DEF/EXPORT:externalName=internalName在您将对象文件放回原处时也会对您有所帮助。

【ARM 嵌入式 编译系列 6 -- GCC objcopy, objdump, readelf, nm 介绍】

文章目录GCCobjcopy简介objcopy常用参数GCCobjdump简介GCCreadelf介绍GCCnm介绍上篇文章:ARM嵌入式编译系列5–GCC内建函数__builtin详细介绍下篇文章:ARM嵌入式编译系列7–ARMGCC链接脚本详细讲解GCCobjcopy简介objcopy是GNU二进制工具集(binutils)的一部分,主要用于复制和转换目标文件。在ARMGCC中,arm-none-eabi-objcopy通常用于从链接后的ELF格式文件中提取出二进制文件或其他格式的内容,这对于嵌入式开发特别有用,因为这样的文件可以直接烧写到微控制器的闪存中。objcopy常用参数下面是一些

linux - 如何只提取 ELF 部分的原始内容?

我试过以下方法,但生成的文件仍然是一个ELF而不是纯粹的部分内容。$objcopy--only-section=我只想要该部分的内容。有没有可以做到这一点的实用程序?有什么想法吗? 最佳答案 使用-Obinary输出格式:objcopy-Obinary--only-section=.textfoobar.elffoobar.text刚刚使用avr-objcopy和AVRELF图像的.text部分进行了验证。请注意,如果Tim在下面指出,您的部分没有ALLOcflags,您可能必须添加--set-section-flags.text=

linux - 如何只提取 ELF 部分的原始内容?

我试过以下方法,但生成的文件仍然是一个ELF而不是纯粹的部分内容。$objcopy--only-section=我只想要该部分的内容。有没有可以做到这一点的实用程序?有什么想法吗? 最佳答案 使用-Obinary输出格式:objcopy-Obinary--only-section=.textfoobar.elffoobar.text刚刚使用avr-objcopy和AVRELF图像的.text部分进行了验证。请注意,如果Tim在下面指出,您的部分没有ALLOcflags,您可能必须添加--set-section-flags.text=

c++ - objcopy 将目录路径名附加到符号名

我打算使用objcopy将文本文件的二进制形式包含到可执行文件中。(在运行时我需要文件作为字符串)。这工作正常,直到链接器需要从符号名称中找到引用。问题是objcopy在符号名称前加上文件的路径名。由于我正在使用GNUAutotools来发送包,这个预先设置的路径名发生了变化,我不知道在C/C++程序中使用什么外部链接器符号。nmlibtest.a|greptextfiletextfile.o:00001d21D_binary__home_git_textfile_end00001d21A_binary__home_git_textfile_size00000000D_binary__

c++ - objcopy --redefine-syms 绑定(bind)失败

先决条件第三方提供了使用共享对象libfoo.so的C++可执行文件fooapp。该库还带有一个headerfoo.hpp,因此开发人员可以构建其他应用程序:/*foo.hpp*/namespacefoo{voidbar(inta,intb);//Morecodebelowhere成功范例这是一个标准的基于LD_PRELOAD的函数插入工作流程。首先,我编写了我自己的库版本myfoo.cpp,它完全反射(reflect)了部分foo.hpp:/*myfoo.hpp*/#includenamespacefoo{voidbar(inta,intb){std::cout然后我将我的库编译成l

linux - 使用 GNU objcopy 从 Elf 生成可执行二进制文件

我想通过以下方式复制可执行的ELF文件:$objcopy-Obinarymyfile.elfmyfile.bin不幸的是:$chmod+xmyfile.bin$./myfile.bin结果:无法执行二进制文件有什么方法可以保留文件的可执行性? 最佳答案 要由execve(2)系统调用执行,文件通常必须是某个elf(5)文件(或某些脚本,或某些旧的a.out格式)。但也见binfmt_misc您的objcopy(1)命令正在丢失ELF文件中的基本元数据。也许你想要strip(1)回想一下ELF是一种相当复杂且用途广泛的格式,它指定了起