Pregunta

Después de implementar con éxito mi primer agente JVMTI y el edificio se completa con el compilador G ++, quiero repasar el proceso de construcción en mi proyecto QT.

Sin embargo, me enfrento a algunos problemas de configuración de procesos de compilación:

Los parámetros que ejecutaría con el compilador G ++ se ven así:

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

Esto funciona muy bien. Ahora a Qmake:

Soy consciente del parámetro CXXFlags para agregar más parámetros al compilador C ++ utilizado por Qmake, pero ¿cómo puedo convertir esta llamada del compilador parametrizado en Qmake?

¿Fue útil?

Solución

Con la ayuda de QT indocumentado Qmake Descubrí una configuración personalizada en Qmake. Sin embargo, no es impecable, produce ahora un Libgagent.So y un agente.

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

Otros consejos

No conozco la respuesta específica pero ...

Como los agentes de JVMTI son "generalmente" sin cabeza, ¿está utilizando Qmake porque su proyecto tiene un cabezal que está desarrollando en Kdevelop/QtCreator? ¿La cabeza está usando la API de fijación?

Si no es así y no tiene cabeza, ¿no sería mejor un editor/CMake diferente? Qmake ahora es un preprock para Cmake, para las cosas MOC, ¿no?

Debo admitir que estoy un poco confuso en q/cmake, aunque espero mudarme a Cmake para mi trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top