Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 与g++;_C++_Qt_G++_Jvmti_Moc - Fatal编程技术网

C++ 与g++;

C++ 与g++;,c++,qt,g++,jvmti,moc,C++,Qt,G++,Jvmti,Moc,通过JVMTI,我正在开发一个代理来评测Java应用程序。因此,将编译一个共享库libagent.so。此外,我使用Qt框架: 目前,它仅由以下两个源文件组成: 及 但是,当使用我的共享库libagent.so启动Java应用程序时,我得到错误:未定义符号:_ZTV11AgentServer(./libagent.so) 当我运行ldd时,我遇到了相同的依赖性问题: ldd -d libagent.so linux-vdso.so.1 => (0x00007fffeb333000) l

通过JVMTI,我正在开发一个代理来评测Java应用程序。因此,将编译一个共享库libagent.so。此外,我使用Qt框架:

目前,它仅由以下两个源文件组成: 及

但是,当使用我的共享库libagent.so启动Java应用程序时,我得到错误:未定义符号:_ZTV11AgentServer(./libagent.so)

当我运行ldd时,我遇到了相同的依赖性问题:

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)
我当前的编译命令是:

g++ $(CXXFLAGS) -fPIC -shared -o libagent.so $(INCPATH) ../src/agent.cpp ../src/agentserver.cpp
其中$(cxflags)是-m64-pipe-O2-Wall-W-D_可重入$(定义)

其中,$(定义)是-DQT\u NO\u DEBUG-DQT\u GUI\u LIB-DQT\u NETWORK\u LIB-DQT\u CORE\u LIB-DQT\u SHARED

其中$(INCPATH)is-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/QtNetwork-I/home/konrad/qtsdk-2010.05/QtGui-I/qt/include-I/usr/lib/java-6-openjdk/include-I/usr/lib/java-6-jvm/jvm/open-6-include-linux-src-一,

我花了一些时间研究这个问题,但没有人解决这个错误



这是agentserver.cpp的头代码:

错误消息告诉您agentserver vtable中的某些元素未定义。使用
Q_对象
需要在源代码上运行
moc
,并链接到qt库

错误消息告诉您AgentServer的vtable中的某些元素未定义。使用
Q_对象
需要在源代码上运行
moc
,并链接到qt库

我只在头文件中声明了构造函数,并实现了它,如agentserver.cpp:6的源代码所示-9@platzhirsch:张贴标题files@Erik:好的,链接附在我的原件中post@platzhirsch:你需要跑步moc@Erik:当我使用Qt IDE(qmake)时,moc文件仍然会生成。我可以轻松地添加所需的moc…cpp文件,但如何链接到Qt库?我只在头文件中声明了构造函数,并实现了它,如agentserver.cpp:6的源代码所示-9@platzhirsch:张贴标题files@Erik:好的,链接附在我的原件中post@platzhirsch:你需要跑步moc@Erik:当我使用Qt IDE(qmake)时,moc文件仍然会生成。我可以轻松添加所需的moc…cpp文件,但如何链接到Qt库?