使用Qt / qmake构建JVMTI代理

时间:2011-03-14 16:39:18

标签: qt qmake jvmti

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

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

我将使用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 个答案:

答案 0 :(得分: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 :(得分:1)

我不知道具体的答案,但......

由于你的项目有一个你在kdevelop / qtcreator中开发的头脑,因此JVMTI代理通常“无头”吗?头部是否使用了附加API?

如果没有并且它纯粹是无头的,那么不同的编辑/ cmake会不会更好? qmake现在是cmake的preproc,对于MOC来说,没有?

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