2010-12-16 30 views
0

用于使用Qt的项目我的标准的CMakeLists.txt文件看起来像:使用Qt K *类与CMake的

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命令,可能解决这一问题?

感谢,

大卫

回答

0

在我印象中的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。

0

当我的某个源文件被某个IDE转换为UTF-16时,我产生了类似的效果。检查文件的编码并将其更改为UTF-8。