2010-10-20 19 views
8

W Visual C++ można łączyć się z biblioteką w samym kodzie, wykonując #pragma comment (lib, "libname.lib"). Czy coś podobnego jest możliwe w g ++?Łączenie z pragma z g ++

+0

Czy mogę zapytać, dlaczego chciałbyś to zrobić? –

+2

@Robert: Link na podstawie #if zdefiniowanego (...); ułatwić dołączanie kodu bez edytowania plików Makefile itp. –

+2

@Zan Lynx: To prawda, ale tylko wtedy, gdy używasz irytującego systemu kompilacji. Polecam używanie CMake, ponieważ wtedy wystarczy dodać jedną, może dwie linie do pliku CMakeLists.txt, aby zrobić dokładnie to samo. To właśnie robię zamiast tego. Czy masz jakieś ograniczenia narzędzi do kompilacji? –

Odpowiedz

3

Biblioteka Boost Config ma pewne wsparcie dla automatycznego linkowania, używając odpowiedniego kodu specyficznego dla danego kompilatora. Jednak docs pamiętać, że toolchain GCC doesn't support autolinking:

Auto-Linking

kompilatory większości okien i łączniki mają tak zwane „automatyczne łączenie wsparcia” co eliminuje drugie wyzwanie. Specjalny kod w plikach nagłówkowych doładowania wykrywa opcje kompilatora i używa tej informacji do zakodowania nazwy poprawnej biblioteki do pliku obiektów ; linker wybiera bibliotekę o tej nazwie z katalogu , którą poleciłeś przeszukać.

Zestawy narzędzi GCC (Cygwin i MinGW) są godnymi uwagi wyjątkami; Użytkownicy GCC powinni zapoznać się z instrukcjami dotyczącymi uniksowych systemów operacyjnych Unix dla dla odpowiednich opcji wiersza poleceń.