• 1831阅读
  • 2回复

[提问]Linux下提升控件后的编译问题 [复制链接]

上一主题 下一主题
离线liuweilhy
 

只看楼主 倒序阅读 楼主  发表于: 2018-11-09
回复本帖可获得1RMB金钱奖励!
每人最多可获奖1次,奖池剩余4RMB金钱 (中奖几率50%)
在使用QT做一个稍大点的工程时,用到的.c和.h文件、资源文件、其它文件较多。为了视觉上的条理性,我会将不同的文件分门别类放置在不同的文件夹下。这样,工程下的所有文件找起来方便,看起来也舒服。
我尝试提升一个QTableView控件为自定义的MyTableView,将mytableview.h和mytableview.cpp放在项目目录的src子目录下。pro文件中,这样标识,如下:
  1. QT       += core gui
  2. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
  3. TARGET = MainWindow
  4. TEMPLATE = app
  5. SOURCES += main.cpp\
  6.                            mainwindow.cpp \
  7.                            src/mytableview.cpp
  8. HEADERS  += mainwindow.h \
  9.                            src/mytableview.h
  10. FORMS    += mainwindow.ui
事实上,在Windows下用MSVC编译器时正常通过没有问题。但当在Linux编译时,会报错如下:

  1. :-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的问题,还是我的问题?
望不吝赐教!多谢!


离线hehui

只看该作者 1楼 发表于: 2018-11-30
回帖奖励+ 1
增加INCLUDEPATH += src
这样可以把src目录加入到搜索路径,同样可加入其它目录
离线liuweilhy

只看该作者 2楼 发表于: 2018-12-01
回 hehui 的帖子
hehui:增加INCLUDEPATH += src
这样可以把src目录加入到搜索路径,同样可加入其它目录 (2018-11-30 09:44) 

正解。多谢指教!
快速回复
限100 字节
 
上一个 下一个