Question

Avec JVMTI Je développe un agent pour le profil des applications Java. Par conséquent, une bibliothèque partagée libagent.so est compilé. De plus, j'utilise le framework Qt:

Pour l'instant il ne se compose que par ces deux fichiers source: agent.cpp et agentserver.cpp

Cependant, lors du démarrage d'une application Java avec ma bibliothèque partagée libagent.so je reçois l'erreur: symbole non défini: _ZTV11AgentServer (./libagent.so)

Quand je lance ldd je reçois le même problème de dépendance:

ldd -d libagent.so 
linux-vdso.so.1 =>  (0x00007fffeb333000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f8b6731b000)
libm.so.6 => /lib/libm.so.6 (0x00007f8b67098000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f8b66e81000)
libc.so.6 => /lib/libc.so.6 (0x00007f8b66afe000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8b67844000)
undefined symbol: _ZTV11AgentServer (./libagent.so)

Ma commande est en cours de compilation:

g++ $(CXXFLAGS) -fPIC -shared -o libagent.so $(INCPATH) ../src/agent.cpp ../src/agentserver.cpp

Où $ (CXXFLAGS) est -m64 -pipe -O2 -Wall -W -D_REENTRANT $ (DEFINES)

où $ (DEFINES) est -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED

où $ (INCPATH) est -I / home / konrad / qtsdk-2010.05 / qt / mkspecs / linux-g ++ - 64 -I ../ src -I / home / konrad / qtsdk-2010.05 / qt / include / QtCore -I / home / konrad / qtsdk-2010.05 / qt / include / QtNetwork -I / home / konrad / qtsdk-2010.05 / qt / include / QtGui -I / home / konrad / qtsdk-2010.05 / qt / include -I / usr / lib / jvm / java-6-openjdk / include -I / usr / lib / jvm / java-6-openjdk / include / linux -I. -JE. -I ../ src -I.

J'ai mis un peu de temps dans des recherches sur ce problème, mais aucun résolu cette erreur.


Ceci est le code d'en-tête du agentserver.cpp: agentserver.h

Était-ce utile?

La solution

Le message d'erreur vous dit que certains éléments dans le vtable de AgentServer est indéfini. L'utilisation de Q_OBJECT vous devez exécuter moc votre source - et un lien vers les bibliothèques qt.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top