• 5571阅读
  • 10回复

请高手帮忙看一下这个错误 [复制链接]

上一主题 下一主题
离线donylnx
 
只看楼主 倒序阅读 楼主  发表于: 2006-08-05
我用的是qtopia-1.7,在一个例子里加了自己的程序,我在编译成for pc版本时没有问题,可是现在在编译成for arm版本时确出现了错误,
arm-linux-g++ -c -I/work/qtopia-free-1.7.0//include -I/work/qt-2.3.7/include -pipe -DQWS -fno-exceptions -fno-rtti -O2 -Wall -W -DNO_DEBUG -fPIC -DQTOPIA_APP_INTERFACE -I.moc/linux-arm-g++/ -o .obj/linux-arm-g++//showimg.o showimg.cpp
showimg.cpp: In method `void ImageViewer::saveImage(int)':
showimg.cpp:2998: no method `QFileDialog::getSaveFileName'
make[1]: *** [.obj/linux-arm-g++//showimg.o] Error 1
make[1]: Leaving directory `/work/qtopia-free-1.7.0/src/applications/imageviewer'
make: *** [applications/imageviewer] Error 2
我的那段程序如下:
void ImageViewer::saveImage( int item )
{
  const char* fmt = saveimage->text(item);
  QString savefilename = QFileDialog::getSaveFileName(QString::null, QString::null,
                          this, filename);
  if ( !savefilename.isEmpty() )
    if ( !image.save( savefilename, fmt ) )
        QMessageBox::warning( this, "Save failed", "Error saving file" );
}
这个是例子自己的程序,文件也包涵了头文件<qfiledialog.h>,现在不知道该怎么办了?我是指向了for arm的那个qte库的,我的这个程序一开始也编译成qte程序过,也没问题呀,现在这到底问题出在哪呢,请高手指点一下!谢谢
[ 此贴被XChinux在2006-08-05 18:03重新编辑 ]
离线cavendish

只看该作者 1楼 发表于: 2006-08-06
qtopia定义的qte库应该是没有包含qfiledialog这个类的
离线donylnx
只看该作者 2楼 发表于: 2006-08-07
可是我之前的那个编译为for arm的qte程序版本时是成功了的。那我现在应该怎么做呢?自己把那个实现函数考过来写在程序里?
离线donylnx
只看该作者 3楼 发表于: 2006-08-07
不对呀,这些代码是例子本身的,我是在例子里加的我自己的程序,问题应该不是不包含类,可是又不知道到底为什么,郁闷死了
离线shiroki

只看该作者 4楼 发表于: 2006-08-08
for qtopia的qte和你单独build的qte包含的配置不一样,所以包含的类也不完全相同。 据我所知filedialog这个类在qtopia的配置里是不包含的, 需要修改qconfig-qpe.h这个文件, 去掉相应的宏
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线donylnx
只看该作者 5楼 发表于: 2006-08-11
好的,谢谢,我改一下试试!
离线donylnx
只看该作者 6楼 发表于: 2006-08-11
我按照您说的改过了,我去掉了qconfig-qpe.h里面那个宏QT_NO_FILEDIALOG,也看到本身qt-2.3.7里确实用到了这个宏,我重新编译它,./configure -xplatform linux-arm-g++ -qconfig qpe ;make sub-src ,之后又重新编译了qtopia-1.7.0,./configure -xpaltform linux-arm-g++   ;make   .可是到了我程序那里还是同样的错误,怎么会这样呢,感觉应该没有问题了呀,我还有什么地方没做到或者错了吗?请再指点一下,非常感谢!
离线donylnx
只看该作者 7楼 发表于: 2006-08-11
我现在可以编译过我的程序了,我去掉了include里qfiledialog.h里的宏定义,可是这样在编译其它qtopia例子程序时总是出现问题,都是libqte.so库的问题,,说
/work/qtopia-free-1.7.0/lib/libqte.so: undefined reference to `QUrlOperator::mkdir(QString const &)'
/work/qtopia-free-1.7.0/lib/libqte.so: undefined reference to `QFontDialog::styleHighlighted(QString const &)'
/work/qtopia-free-1.7.0/lib/libqte.so: undefined reference to `QWorkspace::toolMenuAboutToShow(void)'
我现在应该怎么做呢?
离线shiroki

只看该作者 8楼 发表于: 2006-08-12
怎么能随便改源码文件呢
你说的去掉了config里的dialog宏没起作用, 很可能是这个宏和其他的宏有依赖关系, 你看看qfeature.h, 这里是对依赖关系的描述
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线donylnx
只看该作者 9楼 发表于: 2006-08-12
// QFileDialog/*
#if !defined(QT_NO_FILEDIALOG) && (defined(QT_NO_LISTVIEW) || defined(QT_NO_NETWORKPROTOCOL) || defined(QT_NO_COMBOBOX) || defined(QT_NO_MESSAGEBOX) || defined(QT_NO_SEMIMODAL) || defined(QT_NO_TOOLBUTTON) || defined(QT_NO_BUTTONGROUP) || defined(QT_NO_VBOX) || defined(QT_NO_PROGRESSBAR) || defined(QT_NO_SPLITTER) || defined(QT_NO_WIDGETSTACK))
#define QT_NO_FILEDIALOG
#endif*/
我把里面的这些东西注释掉还是不可以,我都快放弃了,那我想问一下,qtopia里打开一个文件和保存一个文件实现这个界面要用什么类呢?我刚学这个不久,能告诉我一下吗?
离线arthur_liu
只看该作者 10楼 发表于: 2008-10-16
呵呵,我最近也碰到了这个问题,我用的版本是qtopia opensource 4.2.3
暂时还不知道该如何解决
大虾多指点一下啊!
do right, be good!
快速回复
限100 字节
 
上一个 下一个