RE: Cčko a přilinkování knihovny

cizek.milan na seznam.cz cizek.milan na seznam.cz
Středa Listopad 10 18:14:15 CET 2021


Díky za vyjasnění,

> Co se tyce jmen souboru, knihovni soubory jsou libXX.a, cmdline option
> je -lXX (na linux-osech)

tento dotaz směřoval spíše na přepínače -I (velké i) a -L.
Zde bych právě rekurzi čekal. Třeba jsem musel přidat
-I$(DIR_USERS)/lib/include/json-c/
Protože -I$(DIR_USERS)/lib/include/ nestačilo?

M.
 
> On 10.11.2021 15:51, cizek.milan na seznam.cz wrote:
> > Ahoj,
> >
> > už dva dny se neúspěšně snažím přilinkovat si k C projektu json-c (starší
> > verze). Od něj mám .a statickou knihovnu i hlavičkové soubory.
> > Knihovna je vykompilovaná (cross kompilace) v jiném kroku sestavení, tj.
> > mimo můj makefile.
> >
> > Nejsem žádný profík na vytvoření Makefile, ale podle mého to musí být
> nějaký
> > zádrhel tam.
> > Ať se snažím sebevíc, pořád mi to na něčem řve. Nejdále jsem se dostal do
> > stavu...
> >
> > msdk-linux-gcc -I.
> > -I/home/milanc/rtl819x-SDK-v3.4.14b-full-
> package/rtl819x/users/boa/apmib/
> > -I/home/milanc/rtl819x-SDK-v3.4.14b-full-package/rtl819x/users/curl-
> 7.79.1/i
> > nclude/
> > -I/home/milanc/rtl819x-SDK-v3.4.14b-full-
> package/rtl819x/users/lib/include/j
> > son-c/
> > -I/home/milanc/rtl819x-SDK-v3.4.14b-full-package/rtl819x/linux-
> 3.10/drivers/
> > net/wireless/rtl8192cd/ -fPIC -Wall -Werror -L.
> > -L/home/milanc/rtl819x-SDK-v3.4.14b-full-
> package/rtl819x/users/boa/apmib/
> > -L/home/milanc/rtl819x-SDK-v3.4.14b-full-package/rtl819x/users/boa/src/
> > -L/home/milanc/rtl819x-SDK-v3.4.14b-full-package/rtl819x/users/lib/lib/
> > -lapmib sthelper.c
> > /home/milanc/rtl819x-SDK-v3.4.14b-full-
> package/rtl819x/users/boa/src/version
> > .o
> > /home/milanc/rtl819x-SDK-v3.4.14b-full-
> package/rtl819x/users/lib/lib/libjson
> > -c.a -o sthelper
> > /home/milanc/rtl819x-SDK-v3.4.14b-full-
> package/rtl819x/users/lib/lib/libjson
> > -c.a(json_object.o): In function `json_object_double_to_json_string':
> > json_object.c:(.text+0x1be4): undefined reference to `__isnan'
> > json_object.c:(.text+0x1c38): undefined reference to `__isinf'
> >
> > V projektu mám #include <json.h>, jedná se o první demo příklad zde:
> > https://gist.github.com/alan-mushi/19546a0e2c6bd4e059fd
> >
> > Už jsem zkoušel vše možné, ale mám tam dost nejasností... takto vypadá
> můj
> > Makefile https://pastebin.com/y2h4nHxh
> >
> > Byl jsem přesvědčen, že třeba -I projde i podadresáře s hlavičkovými
> soubory
> > (prostě rekurzivně), ale takto mi to nefunguje a musel jsem dát i s
> > podadresářem.
> > Pak jestli chápu, -l se používá jen u dynamických (.so) knihoven? Takže
> > pokud linkuji statickou .a, tak ne? A jsem zmatený z toho názvu, protože
> > knihovna se většinou (ale ne vždy) jmenuje s prefixem lib*.a, ale za tento
> > parametr se to uvádí bez toho lib?
> >
> > Ideálně bych měl všechny knihovny linkované dynamicky a v .so podobě,
> > protože je využívají i jiné části projektu. Ale to je až další krok, až se
> > mi podaří toto.
> >
> > Trochu jsem se dostal dál, pokud přidám -lm, což by měla být nějaká
> knihovna
> > libm. Znamená to, že ji json potřebuje? V požadavcích to neuvádí.
> > https://github.com/json-c/json-c#linking
> >
> > Dokázal by mi s tím nějaký Cčkař pomoci? Klidně za úplatu.
> > Rád věcem rozumím, ale na těchto věcech se dost zasekávám. :-(
> > Děkuji.
> >
> > Milan
> >
> >
> >
> >
> > _______________________________________________
> > HW-list mailing list  -  sponsored by www.HW.cz
> > Hw-list na list.hw.cz
> > http://list.hw.cz/mailman/listinfo/hw-list
> 
> 
> --
> Jindroush <jindroush na seznam.cz>
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list