Portál AbcLinuxu, 12. května 2025 11:47

Dotaz: Implicitní umístění knihovny

15.7.2010 18:17 yman | skóre: 1
Implicitní umístění knihovny
Přečteno: 236×
Odpovědět | Admin
Ahoj,

pro ucely zjednoduseni prace s konfiguraky v programovane aplikaci (C/C++) jsem si naistaloval knihovnu libconfig, a to primo do lokalniho adresare souvisejiciho s projektem (cilove zarizeni bezi na jine architekture). Nedari se mi ale vyresit problem, jak linkeru vysvetlit, kde knihovnu ma hledat, a tak musim pouzivat rucni zadani cesty, ktera je dost kostrbata. Inkluzi tak musim provadet slozite #include "../../../libconfig-1.4.5/include/libconfig.h", misto toho bych cekal bezne #include <libconfig.h>.

Stejne tak pritrouble musim v makefile linkovat ../../../libconfig-1.4.5/lib/libconfig.a, namisto pouziti v manualu uvadeneho flagu -lconfig.

Aplikaci vyvijim v Eclipse a cekal bych, ze se to resi pridanim nejake polozky do Paths projektu, vyzkousel jsem jich ale uz dost a nic nepomohlo.

Muzete mi prosim nekdo poradit, jak spravne tento problem resit?

Diky!
icq je shit! (viz http://www.ddworld.cz/windows/icq-cesky-masochismus-v-im-instant-messagingu.html)

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (yman (tazatel))
15.7.2010 18:31 reqw5q23
Rozbalit Rozbalit vše Re: Implicitní umístění knihovny
Odpovědět | | Sbalit | Link | Blokovat | Admin
Hlavickove soubory se hledaji v systemovych adresarich (/usr/include,/usr/local/include) a v aktualnim adresari. Zrejme chces pouzit hlavickove soubory v jine ceste, pak musis pouzit -I/moje/include parametr pro kompiler.

Hledani knihoven pro linkovani je obdobne (/lib/,/usr/lib,/usr/local/lib) a aktualni cesta. Dalsi cesty se pridavaji pouzitim -L/moje/lib. V pripade, ze pouzivas dynamicky linkovane knihovny, komplikace muze byt v tom, ze system nemusi chtit nestadardni cesty pouzivat - viz. man ld.so.

Osobne bych to resil ovsem jinak. Nainstaloval bych si libconfig z balicku tve distribuce nebo ji rucne nainstaluj do /usr/local (coz ostatne defaultne configure nabizi).
15.7.2010 20:17 yman | skóre: 1
Rozbalit Rozbalit vše Re: Implicitní umístění knihovny
Tak to nakonec neni tak slozity :-) Nechapu teda, co jsem s tim celou dobu vyvadel, protoze jsem se s tim pral vazne snad pul dne. Dekuji ;-)

PS: Do /usr/local jsem to neinstaloval proto, ze jsem knihovnu potreboval prelozit pro jinou architekturu, jak jsem zminil.
icq je shit! (viz http://www.ddworld.cz/windows/icq-cesky-masochismus-v-im-instant-messagingu.html)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.