2017-06-08 5 views
1

Ich habe eine Bibliothek, die von einer Drittpartei zur Verfügung gestellt wird, der Dateiname ist libPXTrader.so. Aber ich möchte es in meinem Projekt in händler.so umbenennen. Also habe ich es gerade umbenannt. Die seltsamen Dinge sind, dass, nachdem ich meine Haupt-Datei zusammengestelltUmbenennen von Third Party Shared Library hat keinen Effekt?

gcc main.o third_party/lib/trader.so -o main 

das ausführbare Datei Haupt mit noch zu libPXTrader.so verknüpfen. Befehl

ldd main 

Es zeigt, dass libPXTrader.so kann nicht gefunden werden. Ich habe Strings trader.so verwendet und finde die Zeichenfolge libPXTrader.so, ich Gast diesen Shared-Library-Namen ist in der so-Datei fest codiert. Wie kann ich damit umgehen?

Antwort

0

Ok, lassen Sie mich meine eigene Frage beantworten. In libPXTrader.so gibt es einen dynamischen Abschnitt, in dem es ein optionales Feld namens SONAME gibt, wenn SONAME auf eine nicht leere Zeichenfolge festgelegt ist. Selbst wenn Sie libPXTrader.so umbenennen, ist die Hauptdatei weiterhin mit libPXTrader.so verknüpft .