首页| 论坛| 消息

标题:Linux下提升控件后的编译问题
作者:liuweilhy
日期:2018-11-09 23:15
内容:

在使用QT做一个稍大点的工程时,用到的.c和.h文件、资源文件、其它文件较多。为了视觉上的条理性,我会将不同的文件分门别类放置在不同的文件夹下。这样,工程下的所有文件找起来方便,看起来也舒服。
我尝试提升一个QTableView控件为自定义的MyTableView,将mytableview.h和mytableview.cpp放在项目目录的src子目录下。在pro文件中,这样标识,如下:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = MainWindow
TEMPLATE = app

SOURCES += main.cpp\
mainwindow.cpp \
src/mytableview.cpp
HEADERS+= mainwindow.h \
src/mytableview.h
FORMS+= mainwindow.ui事实上,在Windows下用MSVC编译器时正常通过没有问题。但当在Linux下编译时,会报错如下:

:-1: error: No rule to make target 'mytableview.h', needed by 'ui_mainwindow.h'.Stop.qmake生成的ui中间文件ui_mainwindow.h找不到提升后的mytableview.h。
我把mytableview.h和mytableview.cpp拷贝到工程的build-×××××××目录下(这里存放中间文件),才能正确编译。
这个解决方法很丑陋。请问大神们遇到过这个问题吗?这个是QT的问题,还是Linux下GCC的问题,还是我的问题?
望不吝赐教!多谢!


#1 [hehui 11-30 09:44]
增加INCLUDEPATH += src
这样可以把src目录加入到搜索路径,同样可加入其它目录
#2 回 hehui 的帖子 [liuweilhy 12-01 16:14]
hehui:增加INCLUDEPATH += src
这样可以把src目录加入到搜索路径,同样可加入其它目录 (2018-11-30 09:44) 
正解。多谢指教!

回复 发表
主题 版块