Использование классов Qt K * с CMake - PullRequest
0 голосов
/ 17 декабря 2010

Мой стандартный файл CMakeLists.txt для проектов, использующих Qt, выглядит следующим образом:

PROJECT(KFileWidgetDemo)

FIND_PACKAGE(Qt4 REQUIRED)
INCLUDE(${QT_USE_FILE})

QT4_WRAP_UI(UISrcs form.ui)
QT4_WRAP_CPP(MOCSrcs form.h)

include_directories(${include_directories} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})

ADD_EXECUTABLE(KFileWidgetDemo main.cpp form.h form.cpp ${MOCSrcs} ${UISrcs})
TARGET_LINK_LIBRARIES(KFileWidgetDemo ${QT_LIBRARIES})

Однако я всегда использовал только классы Q *. Теперь мне нужно использовать KFileWidget, и я получаю ошибки при компиляции:

error: stray ‘\177’ in program
error: stray ‘\1’ in program

Есть ли волшебная команда CMake, которая может это исправить?

Спасибо

David

Ответы [ 2 ]

0 голосов
/ 17 декабря 2010

У меня был похожий эффект, когда один из моих исходных файлов был преобразован в UTF-16 какой-то IDE. Проверьте кодировку ваших файлов и измените их на UTF-8.

0 голосов
/ 17 декабря 2010

У меня сложилось впечатление, что классы K * - это то, что Qt назвал их специфичными для KDE подклассами. Я думаю, что это не совсем так. Я получил эту работу, включив и связавшись с KDE4 напрямую:

cmake_minimum_required(VERSION 2.6)

PROJECT(KFileWidgetDemo)

FIND_PACKAGE(Qt4 REQUIRED)
INCLUDE(${QT_USE_FILE})

find_package(KDE4 4.5.0 REQUIRED)
include_directories( ${KDE4_INCLUDES} )

QT4_WRAP_UI(UISrcs form.ui)
QT4_WRAP_CPP(MOCSrcs form.h)

include_directories(${include_directories} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})

ADD_EXECUTABLE(KFileWidgetDemo main.cpp form.h form.cpp ${MOCSrcs} ${UISrcs})
TARGET_LINK_LIBRARIES(KFileWidgetDemo ${QT_LIBRARIES} ${KDE_LIBRARIES} ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS})

Обратите внимание, что ключ для устранения ошибок компоновщика для KUrl был $ {KDE4_KFILE_LIBS}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...