So lösen Sie undefinierte Symbole wie Funktionen auf, die in einer anderen Bibliothek definiert sindC++

Programme in C++. Entwicklerforum
Anonymous
 So lösen Sie undefinierte Symbole wie Funktionen auf, die in einer anderen Bibliothek definiert sind

Post by Anonymous »

Ich habe zwei Bibliotheken liba.so und libb.so, wobei libb.so liba.so verknüpft. Die Bibliotheken werden erfolgreich erstellt, aber wenn ich libb.so ausführe, werden die Bibliotheksfunktionen von liba.so als U (undefiniertes Symbol) angezeigt. Wie behebe ich das, indem ich U in T umwandele.

Code: Select all

lib_a.cpp

Code: Select all

extern "C" void printa() {

}

Code: Select all

build command

Code: Select all

gcc -shared -fPIC -o liba.so ./lib_a.cpp

Code: Select all

lib_b.cpp

Code: Select all

extern "C" void printa();

void printb() {
printa();
}

Code: Select all

build command

Code: Select all

gcc -shared -fPIC -o libb.so ./lib_b.cpp -L../lib_a -la

Code: Select all

nm liba.so

Code: Select all

0000000000001104 T printa

Code: Select all

nm libb.so

Code: Select all

                 U printa

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post