我有一个目标文件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系统上的魅力一样。