1

在我成功实现我的第一个 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?

4

2 回答 2

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
于 2011-03-14T21:57:17.657 回答
1

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

由于 JVMTI 代理“通常”是无头的,您是否正在使用 qmake,因为您的项目有一个您正在 kdevelop/qtcreator 中开发的头?头部是否使用附加 API?

如果不是,它纯粹是无头的,那么不同的编辑器/cmake 会不会更好?qmake 现在是 cmake 的 preproc,对于 MOC 的东西,不是吗?

我必须承认我对 q/cmake 有点模糊,尽管我希望为我的工作转向 cmake。

于 2011-03-14T21:35:57.890 回答