2013-04-11 124 views
0

我的同事QT的頭文件在QT寫了一碼,他包括錯誤包括但.h擴展名

#include<QtWidgets> 

我的寫作cmake的文件的任務內置的所有庫和可執行文件。

我收到一個錯誤,說沒有找到標題。我知道如果我把它改成另一個.h擴展名的頭文件,它會起作用,但是有沒有辦法讓我不必更改他的任何代碼,仍然能夠檢測到這些代碼?

cmake_minimum_required(VERSION 2.8) 
PROJECT(myproject) 
SET(CMAKE_CXX_FLAGS "-g -Wall") 
SET(BUILD_SHARED_LIBS ON) 

# Find the QtWidgets library 
find_package(Qt5Widgets REQUIRED) 

FIND_PACKAGE(OpenCV REQUIRED) 
FIND_PACKAGE(Boost REQUIRED) 

# Instruct CMake to run moc automatically when needed. 
set(CMAKE_AUTOMOC ON) 

SET(SRC 
    src/main.cpp 
    src/video_player.cpp 
    src/video_widget.cpp 
    src/video_widget_surface.cpp 
) 

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) 
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) 

include_directories(${PROJECT_SOURCE_DIR}/include ${OpenCV_INCLUDE_DIRS} ${Qt_INCLUDE_DIRS}) 


add_executable(myproject ${SRC} ${myproject_HEADERS_MOC}) 
+2

它是'',你不需要在最後加上.h。你不能只是在代碼庫上進行搜索和替換嗎? – cmannett85 2013-04-11 16:08:04

+0

是的,但我不想在代碼庫中改變任何東西。我想讓cmake包含正確的標題,就像qmake一樣。 – navderm 2013-04-11 16:11:33

+1

你在使用什麼版本的Qt?你的同事使用什麼版本? Afaik QtWidgets是Qt5,而QtGui在Qt4中是相當的。 (好吧,並不完全相同,但對於評論來說太長了)。 – Bart 2013-04-11 16:21:59

回答

0

的代碼是越野車,它應該準備#include <QtWidgets>(小寫通知t)。沒有改變它或醜陋的黑客就沒有辦法做到這一點。