10

GNU ツールobjcopyに相当する Windows を探しています。ここに投稿された提案を私の問題に実装しようとしていますが、クロスプラットフォーム (Windows、Linux、および Mac) で実行する必要があります。Google の友達で答えが見つからなかったので、おそらくソリューションを別の方法で実装する必要があります。ありがとうございました!

4

2 に答える 2

0

ハッキングを気にしない場合は、競合する名前のすべてのインスタンスを、ライブラリの bin ファイルの 1 つにある同じ長さの別の名前に置き換えるとうまくいきます。これは自己責任で行ってください。

// 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();

ここでは、ヘッダーで定義されているプレーンな関数名をバイナリのシンボルと一致させるために使用しましたが、不要な置換を防ぐために、代わりに完全なマングル名を使用することをお勧めします。

于 2019-01-04T09:00:38.870 に答える