crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Компиляция Qt плагинов с использованием cmake
igor_bogomolov
  опции профиля:
сообщение 30.9.2010, 9:59
Сообщение #1


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Не получается собрать Qt плагин на cmake. Везде написано, что необходимо добавить следующие определения
ADD_DEFINITIONS(${QT_DEFINITIONS})
ADD_DEFINITIONS(-DQT_PLUGIN)
ADD_DEFINITIONS(-DQT_NO_DEBUG)
ADD_DEFINITIONS(-DQT_SHARED)
ADD_DEFINITIONS(-DQT_DLL)
Добавил, но плагин все равно не собирается, ругается на Q_INTERFACES
Цитата
/home/igor_bogomolov/project/repo/k095-client/src/protocols/k095proto_native_plugin/k095proto_native_plugin.h:13: Error: Undefined interface
make[2]: Leaving directory `/home/igor_bogomolov/project/repo/k095-client/build'
make[1]: Leaving directory `/home/igor_bogomolov/project/repo/k095-client/build'
make[2]: *** [protocols/k095proto_native_plugin/moc_k095proto_native_plugin.cxx] Ошибка 1
make[1]: *** [protocols/k095proto_native_plugin/CMakeFiles/k095proto_native_plugin.dir/all] Ошибка 2
make: *** [all] Ошибка 2

Что я не правильно делаю? Подскажите пожалуйста.
Вот мой CmakeLists.txt
CmakeLists.txt
cmake_minimum_required(VERSION 2.8)

set(PROJECT k095proto_native_plugin)
project(${PROJECT})

if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
    set(PROJECT k095proto_native_plugin_debug)
else()
    add_definitions(-DQT_NO_DEBUG_STREAM)
endif()

list(APPEND HEADERS ${PROJECT_SOURCE_DIR}/../../../../k095-common/zutils.h)
list(APPEND Q_HEADERS ${PROJECT_SOURCE_DIR}/k095proto_native_plugin.h)

list(APPEND SOURCES ${PROJECT_SOURCE_DIR}/../../../../k095-common/zutils.cpp)
list(APPEND Q_SOURCES ${PROJECT_SOURCE_DIR}/k095proto_native_plugin.cpp)

find_package(Qt4 COMPONENTS QtCore QtCore QtNetwork REQUIRED)
include(${QT_USE_FILE})

qt4_wrap_cpp(MOC_SOURCES ${Q_HEADERS})
qt4_automoc(${Q_SOURCES})

add_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII)

add_definitions(${QT_DEFINITIONS})
add_definitions(-DQT_PLUGIN)
add_definitions(-DQT_NO_DEBUG)
add_definitions(-DQT_SHARED)
add_definitions(-DQT_DLL)

include_directories(${PROJECT_SOURCE_DIR}/../../../../k095-common)
include_directories(${PROJECT_SOURCE_DIR}/../../kernel)

link_directories(${CMAKE_CURRENT_BYNARY_DIR}/lib)

# output path
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCES_DIR}../../../bin/protocols)

#executable module of tmpled
add_library( ${PROJECT} SHARED ${HEDARS} ${SOURCES} ${Q_HEDARS} ${Q_SOURCES} ${MOC_SOURCES})
target_link_libraries(${PROJECT} ${QT_LIBRARIES} "k095_kernel")

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
igor_bogomolov
  опции профиля:
сообщение 30.9.2010, 11:45
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Да, с qmake собирается нормально. Я как раз с qmake на cmake перевожу проект.
С дефайнами я по разному игрался, не помогает.

Вообще какая то странная проблема. Ошибку мне выдает метокомпилятор
Цитата
/home/igor_bogomolov/project/repo/k095-client/src/protocols/k095proto_native_plugin/k095proto_native_plugin.h:13: Error: Undefined interface
make[2]: *** [protocols/k095proto_native_plugin/moc_k095proto_native_plugin.cxx] Ошибка 1
Ругается на
Q_INTERFACES(IProtocol)
Файл moc_k095proto_native_plugin.cxx при этом не создается. Что ему может не хватать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 14.1.2025, 19:44