C ++ statické knihovna se společnou lib. Kompilace bude v pořádku?

hlasů
0

Zde je C ++ projekt, a jeho lib závislost

Hello.exe 
   -> A.so 
   -> Ba
ba 
  -> A.so

Hello.exe závisí na Ba a A.so a Ba závisí na A.so. GCC spojí Hello.exe úspěšný?

A v případě, že je soubor b.cc v Ba, který obsahuje soubor záhlaví AH A.so, a také používá některé rozhraní A.so, pak vpravo „patří“ nastavení cesty, sestavování b.cc Bo by měl být úspěšný , Ale pokud je to bez A.so jako vstup, spojení Ba by selhal, že jo?

gcc -c b.cc -I ../ A / zahrnují ;; úspěšný

gcc -a Ba bo ;; selhat

Kde najdu výřez propojované knihovně dokumenty o těchto složitých referenční vztah ...

Dík.

Položena 17/12/2009 v 06:30
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

Statická knihovna je jen sbírka souborů objektů vytvořených z kompilovaných .c / cpp soubory. Nemůže mít odkaz vztahy.

Budete muset zadat odkaz závislostí jak A.so a Ba při kompilaci Hello.exe

z vrcholu mé hlavy, že by bylo něco podobného

gcc -o Hello.exe B.a A.so

Jako vedlejší poznámku, měli byste přejmenovat A.so na libA.so a místo toho dělat

gcc -o Hello.exe -lA B.a

Napojení na A.so přímo jako v příkladu 1 se bude požadovat, aby A.so je vždy ve stejném adresáři jako Hello.exe

Pokud použijete příklad 2, můžete si dát libA.so kdekoliv a využívat LD_LIBRARY_PATH, aby ukazoval na správném adresáři.

Odpovězeno 17/12/2009 v 06:44
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more