Построить агент JVMTI с QT/Qmake
Вопрос
После того, как я успешно внедрил свой первый агент 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, чтобы добавить дополнительные параметры в компилятор C ++, используемый Qmake, но как я могу преобразовать этот параметризованный вызов компилятора в Qmake?
Решение
С помощью QT без документов Qmake Я выяснил пользовательскую конфигурацию в Qmake. Тем не менее, это не безупречно, он производит теперь либагент. Так и агент, который не нужен.
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
Другие советы
Я не знаю конкретного ответа, но ...
Поскольку агенты JVMTI «обычно» без головы, вы используете Qmake, потому что в вашем проекте есть голова, которую вы разрабатываете в KDEVENTENT/QTCREATOR? Голова использует API ATPI?
Если нет, и это чисто без головы, то не будет ли другой редактор/Cmake лучше? Qmake теперь является предварительным для Cmake, для MOC, нет?
Я должен признать, что я немного нечетком на Q/Cmake, хотя я надеюсь переехать в Cmake для моей работы.