背景:初次使用QT在Linux环境下编译、运行,记录实际项目中遇到的问题
开发环境:VS2015+QT5.9.1
编译环境: linux(centOS6.4,内核 Linux 2.6.32-358.el6.i686)
问题现象:
windows环境下编译(VS编译)正常,无报错;
Linux环境下编译,报“undefined reference to CPlateNum obgTmpPlate(this)”,其中CPlateNum 为自定义class类(创建新.cpp/.h/.ui)
产生原因:未在QT工程的pro文件中增加新文件的路径声明
解决方法:pro文件中新增.cpp/.h/.ui路径申明
SOURCES += \
main.cpp \
Frame.cpp \
CPlateNum.cpp
HEADERS += \
Frame.h \
CPlateNum.h
FORMS += \
Frame.ui \
CPlateNum.ui
【注】:1、实际调试发现,若代码存在语法错误:windows编译正确,Linux环境下编译会提示报错.
2、windows环境中XX.h文件可以直接引用ui_XX.h头文件;但在Linux环境下编译,会提示无法找到ui_XX.h文件;故,Linux环境下比编译不能引用ui_XX.h头文件;