Portál AbcLinuxu, 28. června 2025 15:42
g++ -shared libA.a zdrojakB.o -o libB.soA zádrhel je v tom, že výsledná libB.so neexportuje funkciu f() a to preto, že žiadna funkcia v B tú funkciu nevolá. Ja by som ju tam ale napriek tomu chcel mať, pretože ju potrebujem pri linkovaní binárky, ktorá používa knižnicu B. Dá sa to vyriešiť tak, že nebudem linkovať súbor libA.a ale budem linkovať .o, ktoré ho tvoria:
g++ -shared zdrojakA.o zdrojakB.o -o libB.soExistuje nejaké iné riešenie? Dá sa to tomu linkeru nejako povedať?
Řešení dotazu:
g++ -Wl,--whole-archive libA.a -Wl,--no-whole-archive ...option --whole-archive sa musí zapnúť pred statickou knižnicou, ktorá sa má celá použiť a potom sa to zasa musí vypnúť. Ďakujem.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.