天嵌 ARM开发社区

 找回密码
 注册
查看: 3776|回复: 9

编译时UIC的问题

[复制链接]
dengue1204 发表于 2010-3-29 16:04:38 | 显示全部楼层 |阅读模式
我在编译qtopia时有如下的错误:
collect2: ld returned 1 exit status
我查了一下,主要是编译应用程序时CPP文件里的错误
在网上搜索,说是 UIC版本的问题,后来把一个个CPP文件里一个函数的参数改过来以后,编译通过了
但后来我在编译自己写的程序时,还是有这样的错误。

我编译生成的uic的版本是3.2.1,同时在编译过程中说qt2/bin里找不到uic ,后来我就把dqt/bin里的uic复制到了qt2/bin,不知这方法是不是产生错误的原因?如果我不能编译生成uic到qt2/bin,那我该如何去做呢?
我想问一下,uic应该是哪个版本才是正确的呢?
 楼主| dengue1204 发表于 2010-3-29 16:25:57 | 显示全部楼层
在编译pro/first时:
arm-linux-g++  -o /opt/EmbedSky/Qte/arm-qtopia-2.2.0/qtopia/image/opt/Qtopia/bin/first main.o first.o moc_first.o  -L/opt/EmbedSky/Qte/arm-qtopia-2.2.0/qtopia/lib -L/opt/EmbedSky/Qte/arm-qtopia-2.2.0/qt2/lib -lm -lqpe -lqtopia -lqte
moc_first.o(.text+0x114): In function `first::staticMetaObject()':
: undefined reference to `QMetaObject::new_metaobject(char const*, char const*, QMetaData*, int, QMetaData*, int, QMetaProperty*, int, QMetaEnum*, int, QClassInfo*, int)'
moc_first.o(.gnu.linkonce.r._ZTV5first+0x134): undefined reference to `QWidget::dragEnterEvent(QDragEnterEvent*)'
moc_first.o(.gnu.linkonce.r._ZTV5first+0x138): undefined reference to `QWidget::dragMoveEvent(QDragMoveEvent*)'
moc_first.o(.gnu.linkonce.r._ZTV5first+0x13c): undefined reference to `QWidget::dragLeaveEvent(QDragLeaveEvent*)'
moc_first.o(.gnu.linkonce.r._ZTV5first+0x140): undefined reference to `QWidget::dropEvent(QDropEvent*)'
collect2: ld returned 1 exit status
make: *** [/opt/EmbedSky/Qte/arm-qtopia-2.2.0/qtopia/image/opt/Qtopia/bin/first] 错误 1
回复

使用道具 举报

 楼主| dengue1204 发表于 2010-3-29 18:18:59 | 显示全部楼层
不好意思 ,1楼那里我说错了,现在我的uic的版本是3.3.5的,qmake的版本才是3.2.1
回复

使用道具 举报

亚瑟王 发表于 2010-3-30 11:19:14 | 显示全部楼层
你需要设置环境变量,然后使用源码中提供的uic和qmake工具。不要使用系统自带的。
回复

使用道具 举报

 楼主| dengue1204 发表于 2010-3-30 11:24:50 | 显示全部楼层
我是设置了环境变量的,就是光盘上的setEnv脚本文件~~

现在主要是我编译qtopia的时候都会说有找不到qt2/bin/uic,这是什么问题导致的呢?
回复

使用道具 举报

亚瑟王 发表于 2010-3-31 11:38:50 | 显示全部楼层
现在又是编译qtopia时找不到uic了?那在你那里的环境下有没有产生uic呢?你用的是什么开发环境?
回复

使用道具 举报

 楼主| dengue1204 发表于 2010-3-31 17:09:38 | 显示全部楼层
我是在UBUNTU 9.10上面编译的~~
可能是我没有表达清楚吧。。。。
我是在编译过程中有一个错误提示,说找不到qt2/bin/uic,但我在dqt/bin里面发现有uic,于是我就只好把dqt/bin里面的uic复制到qt2/bin/里面。。。。。
这样会引起其他的一些错误吗?
回复

使用道具 举报

亚瑟王 发表于 2010-4-1 12:18:52 | 显示全部楼层
不会的。
回复

使用道具 举报

亚瑟王 发表于 2010-4-1 12:19:50 | 显示全部楼层
我认为你的ubuntu环境中缺少了一些系统组件,导致qt编译时特别是qt2编译时出错了,而引起uic不存在。
回复

使用道具 举报

 楼主| dengue1204 发表于 2010-4-2 11:45:23 | 显示全部楼层
恩,系统安装的时候似乎是没有什么选择安装哪些,我也只是默认的安装~~
由于执行脚本文件没有直接编译成功,所以我安装文件里的一步一步执行命令,有一次执行make以后成功了,但在执行designer的时候那界面似乎有一定透明度,后来我就重新编译,虽然执行make到done,也没有出错,但qt2/bin里面除了moc已经我复制过去的uic,没有发现其他编译出来的程序,在所有文件夹也找不到designer,郁闷得我真不知道该怎么做了~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-8-22 21:41 , Processed in 2.038628 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表