Mam plik biblioteki statycznej o nazwie libunp.a
, Wiem, że mogę użyć gcc -lunp xx
do połączenia z biblioteką.#pragma komentarz (lib, "xxx.lib") odpowiednik pod Linuksem?
Mogę użyć #pragma comment(lib,"xxx.lib")
, aby powiedzieć kompilatorowi Microsoft C/C++, aby dołączyć bibliotekę; jak mogłem to zrobić pod Linuksem/GCC?
W ciągu ostatnich dziesięcioleci programiści zaczęli tworzyć pliki .h i pliki .lib, aby mieć ze sobą jakiś związek. W takim przypadku TO ma sens, aby plik .h zawierał pragmę informującą linker o powiązaniu odpowiedniego pliku .lib. Oczywiście, że gcc go nie ma, ale to nie znaczy, że nie ma sensu. –
Następnie zakładasz, że biblioteki nie wymagają żadnych dodatkowych ścieżek ani flag podczas łączenia. Dotyczy to głównie Windows, dlatego też pragma "działa" w środowisku Visual Studio. Inne pragma gcc są co najmniej jednolite w różnych wersjach systemu Linux/Solaris/BSD, o ile korzystasz z tej samej wersji gcc. Ścieżki jednak nie są. Dlatego całkowicie uzasadnione jest oddzielenie etapu budowy w skryptach konfiguracyjnych lub plikach Makefile. Nie ma nic wspólnego z jednostkami tłumaczeniowymi. Spróbuj czasami przesłać oprogramowanie ;-) –
@Mads: Fakt, że Unix jest platformą, która wymaga złamania, która wymaga oddzielenia faz budowania i łączenia, oraz cały związany z tym ból, nie jest uzasadnieniem dla niszczenia sposobu, w jaki robi to Windows, co jest łatwiejsze w obsłudze i pozwala realizatorom bibliotek na usunięcie tego bólu z ich użytkowników. Idea, że podejście Unix jest trudniejsze, ale lepsze, to czysty, irracjonalny masochizm. –