Mam udostępnianą bibliotekę (* .so) utworzoną przy użyciu narzędzi widoku kompilatora Real View (RVCT 3.2) na docelowym systemie Windows. Następnie próbuję połączyć ten plik * .so z moją aplikacją, używając gcc w systemie linux.Łączenie biblioteki współużytkowanej przy użyciu gcc
Co to jest opcja gcc, aby połączyć tę udostępnioną bibliotekę z moją linuxem aplikacji?
Moje pytanie brzmi, czy opcja -shared
, który jest używany jako
gcc -shared myfile.so
..., wykorzystywane do tworzenia SO plik lub połączyć SO plik? Wierzę, że tworzy coś takiego:
gcc -lmyfile.so
Czy to wystarczy? Czy jest jakiś inny przełącznik informujący linker, że jest to biblioteka dynamiczna (obiekt udostępniony)?
Mam powiązane pytanie: w przypadku moim libmyfile.so biblioteka jest dowiązaniem do libyourfile.so będzie łącząc mój program przy użyciu gcc -lmyfile nadal działa? (Muszę zachować kompatybilność wsteczną niektórych klientów, którzy nie są świadomi zmiany nazwy biblioteki.) – baskin
@jpalecek Czy to działa, jeśli nazwa pliku ma rozszerzenie .dll? – saadtaame
Co zrobić, jeśli biblioteka nie znajduje się w katalogu '/ usr/bin/ld'? –