2011-03-14 53 views
1

在成功实现我的第一个JVMTI代理并且使用g ++编译器完成构建之后,我想要将构建过程集成到我的Qt项目中。使用Qt/qmake构建JVMTI代理

但是我面临着一些构建过程的配置问题:

我将与G ++编译器运行参数如下:

g++ -fPIC -shared agent.cpp -o libagent.so -I /usr/lib/jvm/java-6-openjdk/include -I /usr/lib/jvm/java-6-openjdk/include/linux 

这工作得很好。现在到qmake:

我知道参数CXXFLAGS将进一步的参数添加到qmake使用的C++编译器,但我怎样才能将此参数化编译器调用转换为qmake?

回答

2

Qt Undocumented qmake的帮助下,我想出了qmake中的自定义配置。然而,它并不完美,它现在生成一个libagent.so和一个不需要的agent.o。

SOURCES_AGENT = agent.cpp 
agent.name = agent 
agent.input = SOURCES_AGENT 
agent.dependency_type = TYPE_C 
agent.variable_out = OBJECTS 
agent.output = libagent.so 
agent.commands = $${QMAKE_CXX} $(CXXFLAGS) -fPIC -shared -o libagent.so $(INCPATH) ${QMAKE_FILE_IN} 
QMAKE_EXTRA_COMPILERS += agent 
1

由于JVMTI代理“通常是”无头你使用qmake的,因为你的项目有,你是在KDevelop的/ qtcreator开发的头,我不知道具体的答案,但...

?头部是否使用附加API?

如果不是,它是纯粹的无头然后不会更好的编辑器/ cmake不同? qmake现在是cmake的预处理程序,对于MOC的东西,不是?

我必须承认我在q/cmake上有点模糊,虽然我希望能转移到cmake上工作。

+0

@ paul-anderson:是的,我想在Qt框架上开发一个带有图形用户界面的探查器。我可以把它从建筑过程中分离出来,但这应该更加优雅,并且可以改进建筑过程。 – 2011-03-14 21:55:54

+0

我同意,QT是一个不错的选择,它会是开源吗? ....想要一只手写它? – 2011-03-15 09:00:51

+0

它将是开源的,但它是我学士论文的主题,目前 – 2011-03-15 09:06:47