Portál AbcLinuxu, 10. května 2025 04:36
QT += webkit TARGET = gooframelib TEMPLATE = lib //CONFIG += staticlib DEFINES += GOOFRAMELIB_LIBRARY SOURCES += goorenderer.cpp HEADERS += goorenderer.h\ gooframelib_global.hNyní aplikace, která tuto knihovnu využívá:
QT += webkit TARGET = goofetch CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp INCLUDEPATH += ../gooframelib LIBS += -L../gooframelibPři kompilaci nicméně dostávám následující problém:
g++ -Wl,-rpath,/opt/qt/4.4.3/lib -o goofetch debug/main.o -L/opt/qt/4.4.3/lib -L../gooframelib -lQtWebKit -L/opt/qt/4.4.3/lib -L/usr/X11R6/lib -pthread -pthread -pthread -pthread -pthread -pthread -lQtNetwork -pthread -pthread -pthread -pthread -pthread -pthread -lQtGui -pthread -lpng -lSM -lICE -pthread -pthread -lXi -lXrender -lXrandr -lfreetype -lfontconfig -lXext -lX11 -lQtCore -lz -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread debug/main.o: In function `main': /home/lzap/projects/qt/gooframe/goofetch/main.cpp:12: undefined reference to `GooRenderer::GooRenderer(QUrl const&)' debug/main.o: In function `~GooRenderer': /home/lzap/projects/qt/gooframe/goofetch/../gooframelib/goorenderer.h:18: undefined reference to `vtable for GooRenderer' collect2: ld returned 1 exit statusProč g++ hlásí "undefined reference" na objektu z gooframelib, když tam adresář s knihovnou v parametrech opravdu je (-L../gooframelib)? Zkusil jsem vygenerovat jak statickou (.a soubor) tak dynamickou (.so) knihovnu, stále to hlásí to samé. Díky za tipy.
Zkus přidat parametr -lgooframelib
. Pokud mám pravdu a vyjde to, podívej se prosím do manuálové stránky, co znamená parametr -L
undefined reference to vtable
mi to taky dříve házelo, furt jsem přemejšlel kde mám chybu a šlo jen o to, že jsem do nějaký třídy strčil keyword Q_OBJECT a zapomněl znova spustit qmake, aby to zpracoval moc
. Doufám, že si to nepletu a bylo to opravdu řešení tohodle problému.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.