Sziasztok!
Van pár kis projektem, amiben saját fejlesztésű és külső lib-eket (pl.: libtiff, libpcre, libcurl, stb) linkelnék össze saját libekhez és/vagy futtatható programokhoz. A célom az lenne, hogy a legminimálisabb függéssel kreálhassak kis progikat.
Ez VC2008 alatt tökéletesen működik, most portolnám Qt alá, azután multiplatformossá.
Gondom akadt, ha a függőség:
libA - libB - app
Az app jól működik:
main() { fnB(); }
Az libB-ben:
fnB() { fnA(); }
Az libA-ban:
fnA() {};
de ha pl. a libA = libtiff, akkor app-ban:
libB.a(libBB.o):libBB.cpp:34: undefined reference to `TIFFOpen'
...stb. tiff függvények ...
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\app.exe] Error 1
mingw32-make: *** [debug] Error 2
A libB.pro:
INCLUDEPATH += $$MYLIBSRC/libtiff
LIBS += $$MYLIBBIN/libtiff.a
A app.pro:
INCLUDEPATH += $$MYLIBSRC/libtiff
LIBS += $$MYLIBBIN/libtiff.a
INCLUDEPATH += $$MYLIBSRC/libB
LIBS += $$MYLIBBIN/libB.a
Szerintem fölösleges app.pro-ban a libtiff hivatkozás, de nélküle se vele se fordítható.
Mit nem néztem meg?
Miért működik ugyanez a felállás a többi libxxx-ekkel? (és VC alatt meg mind jó).
köszi...
Hozzászólások
Javaslom a CMake-et. Könnyebb az élet vele, kezeli a függőségeket, Qt-t stb.: link
--
http://www.naszta.hu
+1
Es ugy linkelsz vele, ahogy akarsz. A QMake erosen megkoti a kezedet.
--
Amennyire látom ez a libBB fordításnál/linkelésnél száll el, ott kell körülnézned, nem az app-nál...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o