osx でオブジェクト ファイルを編集するにはどうすればよいですか? たとえば、オブジェクト ファイルからシンボルの名前を変更したり、シンボルを削除したりします。binutil の gobjcopy を試しました。
gobjcopy --strip-symbol some_symbol foo.o foo2.o
これは機能しているように見えますが、ld
foo2.o をリンクするとエラーが発生します (foo.o ではエラーが発生しませんでした)。これは、最も単純な形式 ( gobjcopy foo.o foo2.o
) でも発生します。
/opt/local/bin/ranlib: file: mylib.a(foo2.o) malformed object (symbol 0 must not have NO_SECT for its n_sect field given its type (N_SECT))
背景: 2 つのオブジェクト ファイルで定義されている重複シンボルを削除しようとしています。