我也碰到这个问题,发现了些dd,不知和你的是否一样:
1.在QFileDialog.H 中对QFileDialog的定义前有一个宏定义
#ifndef QT_NO_FILEDIALOG
如果这个宏被打开了,那么就肯定会出现上面的错误。我碰到的错误就是这个原因,后来一查是因为引入了其它的类库,而在相应的头文件中打开了这个宏。一般是自定义了QFileDialog造成的。
2. 去掉#ifndef QT_NO_FILEDIALOG,强制性打开QFileDialog的定义。
此时编译通过没有问题,但是执行程序时出现了错误:
undefined reference to `QFileDialog::QFileDialog(QWidget*, char const*, bool)'
显然有人在编译qte库时把QFileDialog的定义部分干掉了。
当然,可能你的没问题,那就ok啦
结论:头文件+库,一个都不能少,好像是废话哈