2013-04-11 122 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)。没有改变它或丑陋的黑客就没有办法做到这一点。