2012-03-12 4 views
2

私はcmakeでビルドしたい小さなQt4プロジェクトを持っています。 QTcpServerとQThreadがあり、両方ともQ_OBJECTマクロが含まれています。 makeを実行すると、qrc_tcpserver.cxxを生成した後、常にRCC Parse Errorが発生します。cmakeとQt4でのmake中のRCC解析エラー

[ 9%] Generating qrc_tcpserver.cxx 
RCC Parse Error: '/home/path/server/include/tcpserver.h' Line: 1 Column: 1 [error occurred while parsing element] 
make[2]: *** [qrc_tcpserver.cxx] Fehler 1 
make[1]: *** [CMakeFiles/TcpServer.dir/all] Fehler 2 
make: *** [all] Fehler 2 

私のcmakeのファイルは、次のようになります: 障害の正確な出力があり、私がテスト変数なしでそれを実行

set(PROJECT_NAME TcpServer) 
PROJECT(${PROJECT_NAME}) 
cmake_minimum_required(VERSION 2.6) 

# FOR QT4 
find_package(Qt4 REQUIRED COMPONENTS QtCore QtNetwork) 

SET(CMAKE_PACKAGE_QTGUI FALSE) 
SET(QT_WRAP_CPP TRUE) 

set(QT_USE_QTXML TRUE) 

# ENABLE WARNINGS 
ADD_DEFINITIONS(-Wall) 

#FOR GOOGLETEST 
if(test) 
    find_package(GTest REQUIRED) 
    enable_testing() 
endif() 

set(QT_USE_QTNETWORK TRUE) 
set(INCLUDES ${PROJECT_SOURCE_DIR}/include) 

set(${PROJECT_NAME}_Qt_SRC 
    ${INCLUDES}/tcpworkerthread.h 
    ${INCLUDES}/tcpserver.h 
) 

set(${PROJECT_NAME}_Qt_UI 
) 

set(${PROJECT_NAME}_Qt_RES 
) 

INCLUDE(${QT_USE_FILE}) 
ADD_DEFINITIONS(${QT_DEFINITIONS}) 

IF(QT_WRAP_CPP) 
    MESSAGE("Wrap cpp!") 
    QT4_WRAP_CPP(${PROJECT_NAME}_MOC_CPP ${${PROJECT_NAME}_Qt_SRC}) 
ENDIF(QT_WRAP_CPP) 

QT4_WRAP_UI(${PROJECT_NAME}_UI_CPP ${${PROJECT_NAME}_Qt_UI}) 
QT4_ADD_RESOURCES(${PROJECT_NAME}_RES_H ${${PROJECT_NAME}_Qt_SRC}) 

if(test) 
    include_directories(${GTEST_INCLUDE_DIRS} ${INCLUDES} ${QT_QTNETWORK_INCLUDE_DIR}) 
else() 
    include_directories(${INCLUDES} ${QT_QTNETWORK_INCLUDE_DIR}) 
endif() 

if(test) 
    set(${PROJECT_NAME}_SRC_TEST 
     src_test/main.cpp 
     src_test/tcpservertest.cpp 
     src_test/tcpworkerthreadtest.cpp 
) 
    set(PROJECT_TEST_NAME "${PROJECT_NAME}_test") 
    set(${PROJECT_NAME}_SRC 
     src/tcpserver.cpp 
     src/tcpworkerthread.cpp 
    ) 
else() 
    set(${PROJECT_NAME}_SRC 
     main.cpp 
     src/tcpserver.cpp 
     src/tcpworkerthread.cpp 
) 
endif() 

set(${PROJECT_NAME}_LIB 
    ${QT_LIBRARIES} 
    ${QT_QTNETWORK_LIBRARIES} 
) 

if(test) 
    add_library(${PROJECT_NAME} STATIC ${${PROJECT_NAME}_SRC}) 
    add_executable(${PROJECT_TEST_NAME} ${${PROJECT_NAME}_SRC_TEST}) 
    target_link_libraries(${PROJECT_TEST_NAME} ${PROJECT_NAME} ${${PROJECT_NAME}_LIB} ${GTEST_BOTH_LIBRARIES} pthread) 
    add_test(${PROJECT_TEST_NAME} ${PROJECT_TEST_NAME}) 
else() 
    add_executable(${PROJECT_NAME} ${${PROJECT_NAME}_SRC} ${${PROJECT_NAME}_MOC_CPP} ${${PROJECT_NAME}_UI_CPP} ${${PROJECT_NAME}_RES_H}) 
    target_link_libraries(${PROJECT_NAME} ${${PROJECT_NAME}_LIB}) 
endif() 

ので、これは(私は、GTESTを生成するためにそれを使用falseに設定されています私のためにはあまり重要ではない、ちょうど周りを遊ぶために)。

私の失敗はどこですか?

答えて

2

私はCMakeとよく似ていませんが、間違ったファイルリストをQT4_ADD_RESOURCESに送っているようです。

ライン

QT4_ADD_RESOURCES(${PROJECT_NAME}_RES_H ${${PROJECT_NAME}_Qt_SRC}) 

はおそらく

QT4_ADD_RESOURCES(${PROJECT_NAME}_RES_H ${${PROJECT_NAME}_Qt_RES}) 
+0

でなければなりませんねえ、ありがとうございました。これは失敗でした:-) – EarlOfEgo

関連する問題