質問

GNUツール objcopy のWindowsと同等のWindowsを探しています。私は問題に投稿されたを実行する必要がありますが、それをクロスプラットフォーム(Windows、LinuxとMac)。私は私のGoogleの友達に答えを見つけることができませんでしたので、おそらく解決策を違って実装する必要があります。ありがとうございました!

役に立ちましたか?

解決

デフォルトのMSVCツールの一部:LIB /EXTRACTオブジェクトのコピーを抽出します。LIB /REMOVEはそれからライブラリから削除します。

オブジェクトファイルをバックアップすると、LIB /DEF /EXPORT:externalName=internalNameもあなたにとって有益であろうと思います。

他のヒント

ハックを気にしない場合は、矛盾する名前のすべてのインスタンスを同じ長さの同じ長さの名前で置き換えることができます。あなた自身のリスクでこれをしてください。

// a.h
void doSomething();

// b.h
void doSomething();
.

doSomething

doSomethinkを置き換えることができます

Pythonのようなものになるでしょう:

f = open('b.lib',"rb")
s = f.read()
f.close()
s = s.replace(b'doSomething',b'doSomethink')
f = open('b.lib',"wb")
f.write(s)
f.close()
.

とBヘッダを修正して

// b.h
void doSomethink();
.

ここでは、ヘッダーに定義されているプレーン関数名をバイナリ内のシンボルと一致させるだけでなく、無駄な交換を防ぐためにフルマングル名を使用することをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top