Jak dołączyć potrzebną bibliotekę C przy użyciu gcc?

Próbuję skompilować prosty przykład C z tego tutoriala Na Ubuntu używając gcc. Co muszę użyć jako argumentu, aby gcc zawierało potrzebne biblioteki dla #include <libappindicator/app-indicator.h>?

Author: Drew Noakes, 2011-05-16

6 answers

Jeśli użyłeś apt-get, Synaptic Package Manager, itd. aby uzyskać bibliotekę appindicator (a nie budować ją ze źródła), zainstalowałeś Tylko pakiet libappindicator1czy zainstalowałeś również, aby pobrać pliki nagłówkowe libappindicator? Pakiety linuksowe bardzo często dzieliły biblioteki uruchomieniowe od nagłówków w czasie kompilacji. W ten sposób osoby, które potrzebują tylko bibliotek, aby zaspokoić dynamiczne łącze, nie muszą instalować niepotrzebnych nagłówków. Ale ponieważ robisz rozwój potrzebujesz tych nagłówków i dlatego potrzebujesz libappindicator-dev paczka również.

 5
Author: QuantumMechanic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-09 13:36:50
-I <searchpath to include files>
-L <searchpath to the lib file>
-l<thelibname>
 46
Author: Kristofer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-16 11:42:29

Użyj opcji linii poleceń -l. Możesz określić ścieżkę wyszukiwania biblioteki za pomocą opcji -L. Np.:

gcc -o myprogram -lfoo -L/home/me/foo/lib myprogram.c

Spowoduje to połączenie myprogram ze statyczną biblioteką libfoo.a w folderze /home/me/foo/lib.

 13
Author: Vijay Mathew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-16 11:48:34

To co robię to:

pkg-config --list-all | grep indicator
 4
Author: hytromo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-06 12:41:59
gcc example.c -o example  `pkg-config --cflags --libs appindicator-0.1`

Pkg-config pobierze wymagane flagi include i lib dla libappindicator i ich zależności. Zakłada to, że pakiet libappindictaor-dev jest już zainstalowany.

 2
Author: lijo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-02 07:34:58

To, co próbujesz tutaj zrobić, to zrobić aplikację gtk, powyższe rozwiązania są odpowiednie wszędzie podobnie jak użycie opcji-l I-i,

Jednak dla aplikacji GTK można również użyć pkg-config, które ułatwiają, ponieważ ścieżki mogą być predefiniowane

Http://www.freedesktop.org/wiki/Software/pkg-config

Ciekawy przykład można znaleźć tutaj http://developer.gnome.org/gtk/2.24/gtk-compiling.html

 1
Author: manugupt1,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-16 12:03:55