避免在macOS上使用objcopy创建不同的x86_64子类型

时间:2018-06-01 09:45:45

标签: macos gcc binutils objcopy

我有一个目标文件m1.o,我想用objcopy编辑(替换符号)(来自通过macPorts安装的macOS上的binutils)

nm m1.o

0000000000000010 s EH_frame1
                 U ___f_MOD_g
0000000000000000 T ___m1_MOD_a

在编辑之前使用此对象,例如gfortran -o main main.F90

当我在此文件上应用objcopy时(即使没有请求修改符号表),链接也会失败。

objcopy m1.o
gfortran -o main main.F90

ld: object file m1.o was built for different x86_64 sub-type (-2147483645) than link command line (3) file 'm1.o' for architecture x86_64`

事实上,虽然系统表(见nm)没有改变,但hexdump发生了很大变化。

1)如何避免更改子类型?或者我可以修复链接吗? 2)或者objcopy与macOS上的gfortran结合使用是完全不错的主意

PS:一切都像我的linux系统上的魅力一样。

0 个答案:

没有答案