2017-02-20 9 views
0

Ich habe eine Datei A.c und eine andere Datei B.c, Es gibt eine Funktion func1 in A.c, die in B.c definiert ist und eine Funktion func2 in B.c, die in A.c definiert ist. Wenn ich jetzt versuche, die separate so-Bibliothek mit A.c und B.c zu erstellen, dann löst der Compiler einen zyklischen Abhängigkeitsfehler bei der Verknüpfungszeit aus. Also gibt es einen Weg, so dass ich die beiden Bibliotheken miteinander verbinden kann? Oder ich kann die Verknüpfung verzögern, d. H. LibA.so wird nicht verlinkt, bis libB.so kompiliert wird.Entfernen der zirkulären Abhängigkeit in Native Android

Beispiel: -

Datei A. h: -

void func1(); 

Datei A. C

void func1() 
{ 
    printf ("Hello A"); 
} 

void other_function() 
{ 
    func2(); 
} 

Datei B.h

void func2(); 

Datei B.c

void func2() 
{ 
    printf("Hello B"); 
} 

void other_function() 
{ 
    func1(); 
} 
+0

Verwenden Sie Deklaration in Header-Dateien? Oder ist der Aufruf von func1 in func2 und func2 func1? Können Sie ein kurzes Quelltextbeispiel wie hier beschrieben geben: http://stackoverflow.com/help/mcve –

+0

Bitte überprüfen Sie. Und lassen Sie mich wissen, wenn Sie irgendwelche Zweifel haben @KamiKaze – user1648014

+0

Versuchen Sie, A.h und B.h in A.c und B.c. – Milack27

Antwort

-1

wir diese Art statt gemeinsam benutzte Bibliothek statische Bibliothek zu verknüpfen, indem Sie erreichen können. Ich habe das benutzt und es hat funktioniert.

Verwandte Themen