linkowanie bibliotek
Ostatnio zmodyfikowano 2009-05-18 18:33
ziemianp Temat założony przez niniejszego użytkownika |
linkowanie bibliotek » 2009-05-14 20:29:38 Mam cały czas problem z linkowaniem bibliotek do projektu. Nie jestem w tym dobry, bo dopiero się uczę, ale może ktoś mi pomoże, objaśni jak to robić. Jakie muszą być spełnione warunki, żeby edytor "widział" wszystkie pliki, biblioteki. Żeby nie pisał, że lokalizacja nie istnieje (tych bibliotek) mimo, że one w danym miejscu są. Albo jak widzi deklaracje, to żeby widział skompilowane pliki z implementacją (binaria?, lib?) - czyli undefined reference. Konkretnie chodzi mi o QtCreator. Jak tam dodać jakieś zewnętrzne biblioteki? Podstawowe z C++ są i można z nich bez większych problemów korzystać. Większych, bo dziwne jest dla mnie, że trzeba w projekcie wpisać dokładną ścieżkę do pliku nagłówkowego.
Dodam, że dodaje w programie parametry przy make -lodpowiednianazwabibl i nic to nie daje. |
|
DejaVu |
» 2009-05-14 22:57:33 Jeśli używasz Dev-C++ to wykorzystujesz do tego aktualizatora pakietów. Później tworzysz projekt i do projektu dodajesz swoje pliki ze źródłami. Następnie wchodzisz w opcje projektu, wyszukujesz coś takiego jak konsolidator i wpisujesz tam: -l _nazwa_biblioteki_ Plik na dysku będzie się nazywał: lib_nazwa_biblioteki_.a Np. dla allegro _nazwa_biblioteki_=allegro[/b], więc: plik nazywa się: liballegro.a a wpisujesz w konsolidator: -l allegro W przypadku qt postępujesz analogicznie. |
|
ziemianp Temat założony przez niniejszego użytkownika |
» 2009-05-15 00:23:42 Dzięki za odpowiedź. Niestety nie używam Dev-cpp, choć w nim na szczęście mi wszystko działa. Ale chodzi o to, że robię program, który będzie można uruchamiać w trzech trybach: - uruchominie w konsoli z parametrami - widok ncures - oraz ten nad którym teraz chcę pracować - okienka na bazie biblioteki qt.
I chcę do tego użyć Qt Creator. Nie mam pojęcia co zrobić, aby Qt Creator widział (linkował) te biblioteki. Cały czas mam undefined reference. Problem jest taki, że używam biblioteki Curl i pełni ona istotną rolę w programie. Mogę zrezygnować z ncurses i kompilować bez niej, ale curl musi być.
Generalnie chciałbym, żeby to poszło mi chociaż na linuksie, bo program potem bez problemu ruszy na windows.
Ten kompilator powinien domyślnie widzieć biblioteki, które są zainstalowane linuksie? |
|
DejaVu |
» 2009-05-15 14:40:51 Konsolidator dołącza biblioteki. Biblioteki te musisz dołączyć ręcznie w wyżej podany sposób (dla kompilatorów Mingw) |
|
ziemianp Temat założony przez niniejszego użytkownika |
» 2009-05-18 18:33:49 Problem rozwiązany pod linuksem. W pliku projektu (*.pro) trzeba było napisać:
LIBS += -lcurl -L/usr/lib/ LIBS += -lncurses -L/usr/lib/
Jak mi się uda, to napiszę co trzeba zrobić pod Windowsem. |
|
« 1 » |