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に:

qmake で使用される C++ コンパイラにさらにパラメータを追加するパラメータ CXXFLAGS は認識していますが、このパラメータ化されたコンパイラ呼び出しを 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エージェントは「通常」ヘッドレスであるため、プロジェクトにはkdevelop/qtcreatorで開発しているヘッドがあるため、qmakeを使用していますか? ヘッドはアタッチ API を使用していますか?

そうでなく、純粋にヘッドレスである場合、別のエディター/cmakeの方が良いのではないでしょうか? qmake は、MOC 用の cmake のプリプロシージャになりましたね。

仕事のために cmake に移行したいと思っていますが、q/cmake については少し曖昧であることを認めなければなりません。

于 2011-03-14T21:35:57.890 に答える