【问题标题】:Build JVMTI Agent with Qt/qmake使用 Qt/qmake 构建 JVMTI 代理
【发布时间】:2011-07-15 03:59:39
【问题描述】:

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

【问题讨论】:

    标签: qt qmake jvmti


    【解决方案1】:

    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
    

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • @paul-anderson:是的,我想在 Qt 框架上开发一个带有图形用户界面的分析器。我可以将它与构建过程分开,但这应该更优雅并改进开发中的构建过程。
      • 我同意,QT 是一个不错的选择,它会开源吗? ....想要手写吗?
      • 它将是开源的,但现在是我的学士论文的主题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多