2010-12-16 28 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。