• 9243阅读
  • 16回复

[提问]在linux下make出现QTimer 错误问题 [复制链接]

上一主题 下一主题
离线jszzz119
 

只看楼主 倒序阅读 楼主  发表于: 2012-01-17
在windows编写的工程文件拿到乌班图下Qmake **.pro  生成makefile文件,然后make 就提示qtimer没有这个文件或目录
我吧定时器注释掉就能make了 怎么回事,
是不是少了QTimer的库文库?
《铸╰
离线XChinux

只看该作者 1楼 发表于: 2012-01-17
注意大小写。
没有qtimer这个头文件的,只有QTimer或者qtimer.h
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线jszzz119

只看该作者 2楼 发表于: 2012-01-17
回 1楼(XChinux) 的帖子
大哥我只是字母打错了··
我在windows下面运行没问题的··
《铸╰
离线XChinux

只看该作者 3楼 发表于: 2012-01-17
又或者你用的Qt版本不正确?qmake -v 看一下,是不是正确的。(不会是用的qt 3.x的吧?)
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线ahnushe

只看该作者 4楼 发表于: 2012-01-17
截个图看看撒。。。。。。
离线begboy

只看该作者 5楼 发表于: 2012-01-18

请检查以下2点:
1、 头文件应包括 QTime
    格式类似: #include <QTime>
2、 检查你的环境变量
      最好用当前用户输入
     echo $PATH;
     同时查找 QTime.h 所在目录,命令为:
     find / -name "QTime.h" -print          
    
祝好运!
begboy
离线jszzz119

只看该作者 6楼 发表于: 2012-01-18
回 3楼(XChinux) 的帖子
QMake version 2.01a
Using Qt version 4.5.3 in /usr/local/Trolltech/QtEmbedded-4.5.3/lib
《铸╰
离线jszzz119

只看该作者 7楼 发表于: 2012-01-18
回 5楼(begboy) 的帖子
肯定是没有的瑟···有就没错了··· 我直接吧windows下的 QTimer.h弄过来怎么样
《铸╰
离线jszzz119

只看该作者 8楼 发表于: 2012-01-18

没有这个文件··· 我到哪去弄呢··
《铸╰
离线begboy

只看该作者 9楼 发表于: 2012-01-18
Re:回 5楼(begboy) 的帖子
引用第7楼jszzz119于2012-01-18 11:46发表的 回 5楼(begboy) 的帖子 :
肯定是没有的瑟···有就没错了··· 我直接吧windows下的 QTimer.h弄过来怎么样




你的Qt 是通过编译源码获得,还是下载bin安装的?

你转入root超级用户后,用下面的命令查找一下:
find /  -name "qtime*.h" -print

qt头函数缺省放在/usr/include/qt4/Qt
或者 ls -al /usr/include/qt4/Qt/*time*.h 查看一下

祝好运!
begboy

离线begboy

只看该作者 10楼 发表于: 2012-01-18
引用第8楼jszzz119于2012-01-18 11:57发表的  :
[图片]
没有这个文件··· 我到哪去弄呢··



你的find 命令 要加入搜索路径,否则为当前目录
即 find / -name .......
find 与 / 之间有空格

离线jszzz119

只看该作者 11楼 发表于: 2012-01-18
回 9楼(begboy) 的帖子
我是直接搭建的交叉编译环境   Qt-embedded-4.5.3 和 Qt-x11-4.5.3
其中还加了几个小的什么文件 忘记了

还有我呢个路径是/usr/local/Trolltech/QtEmbedded-4.5.3/
include下面是没有QT的
《铸╰
离线jszzz119

只看该作者 12楼 发表于: 2012-01-18
回 10楼(begboy) 的帖子
加/ 查询还是没有
《铸╰
离线begboy

只看该作者 13楼 发表于: 2012-01-18
回 12楼(jszzz119) 的帖子

对不起,没看到你是建立交叉编译环境的!

我们对 交叉编译 相关开发还没开始。

建议参考下面资料:

Ubuntu 10.04下QT 4.3.5和tslib-1.4的安装移植 (2010-12-01 16:28)
分类: Linux应用

一、工作环境:

1、主 机:Ubuntu 10.04

2、硬件平台:real 6410

3、交叉编译器:arm-linux-gcc-4.3.2

4、触摸屏适配层源 码:tslib-1.4.tar.gz

二、交叉编译tslib-1.4

1.解压tslib-1.4.tar.gz

cd tslib/  


./autogen.sh

echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

./configure --host=arm-linux --cache-file=arm-linux.cache -- enable-inputapi=no -prefix=/usr/local/tslib

make

make install

红色表示tslib安装后的路径。

修改ts.conf内容

vi /usr/local/tslib/etc/ts.conf

最后内容如下:

module_raw input

module pthres pmin=1

module variance delta=30

module dejitter delta=100

module linear

然后打包整个tslib的内容,下载到开发板里的对应路径下(/usr/local下)。

2.配置环境变量

vi /etc/profile

添加如下内容:

export TSLIB_ROOT=/usr/local/tslib

export TSLIB_TSDEVICE=/dev/input/event0

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

export TSLIB_FBDEVICE=/dev/fb0

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

重启MINI2440,在终端下输入./ts_calibrate出现tslib的触摸屏五点校准画面,至此,tslib的安装移植成功完成。

三、交叉编译qtopia4.3.5

解 压 qtopia-opensource-4.3.5.tar.gz

cd qtopia-opensource-4.3.5/

vi build

添加如下内容:

#!/bin/bash

./configure -prefix /mini2440 -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -

qt-zlib -qt-libpng -qt-freetype -nomake tools -nomake examples -nomake demos -optimized-qmake -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-gfx-linuxfb -qt-kbd-usb -confirm-license -qt-mouse-tslib -I /usr/local/tslib/include -L /usr/local/tslib/lib

注意:红色所标中的路径必须和tslib的安装路径一致,否则,编译不成功,其 他参数可根据自己实际情况进行配置。

保存退出后修改build文件的执行权限。(chmod +x build)而后执行build。

./build

make(时 间较长,耐心等待!!)

make install

cd /mini2440/bin

mv qmake qmake-arm

cp qmake-arm /bin/

执行which qmake-arm命令,如果出现:/bin/qmake-arm/则安装成功。

以后 我们编译qt程序时,都使用qmake-arm即可(即:qmake-arm -project qmake-arm make)。

至此,qt4.3.5安装完成。

四、qtopia4.3.5移植

cd /mini2440/

打包lib文件夹里的所有内容,下载到开发板里的对应路径 下。

(需要在开发板上执行mkdir /mini2440,把lib文件夹移至mini2440文件夹下,目的是为了避免设置qt环境变量的麻烦。此为,可以精简lib文件夹下fonts字体库文件,或者全删,把开发板中自带qt2的宋体字库复制到mini2440/lib/qfonts下)  


至此,qt4.3.5移植也告一段落。

网上摘抄的,自己做的时候碰到问题。

小弟现在要移植qt-embedded-opensource-4.5.1到板子上,使用qt自带的触摸屏校准程序,记过很不让人满意,所以我现在打算用tslib-1.4给qt4.5.1打补丁

软件环境:centos5.2,gcc-4.1.1(crosstools)

硬件:ARM920T

系统:qt-embedded-opensource-4.5.1.tar.gz 解压到/home/Raymond/qt-embedded-arm-tslib下

tslib-1.4编译通过,安装到/usr/local/下,同时复制了一份到/nand1/tslib-1.4中

进入/home/Raymond/qt-embedded-arm-tslib中

执行:./configure -prefix /nand1/Trolltech/QtEmbeddedARMTSLib -release  -shared -qvfb -make libs  -nomake tools  -make examples  -make docs  -make demo -no-cups  -no-iconv  -no-dbus  -webkit -no-openssl  -xplatform qws/linux-arm-g++  -embedded arm  -little-endian  -qt-freetype  -qt-gfx-linuxfb  -no-gfx-transformed  -no-gfx-multiscreen  -no-gfx-vnc  -no-gfx-qvfb  -qt-kbd-tty  -qt-kbd-usb  -no-glib -qt-mouse-tslib -I/nand1/tslib-1.4/include -L/nand1/tslib-1.4/lib

其中我已经指定了头文件目录和库文件目录

但是在configure过程中,出现如下错误:

The tslib functionality test failed!

You might need to modify the include and library search paths by editing

QMAKE_INCDIR and QMAKE_LIBDIR in

/home/Raymond/qt-embedded-arm-tslib/mkspecs/qws/linux-arm-g++.

请问这个是什么原因?

根据提示,我又将

/home/Raymond/qt-embedded-arm-tslib/mkspecs/qws/linux-arm-g++ /qmake.conf

中添加了QMAKE_INCDIR=/nand1/tslib-1.4/include

QMAKE_LIBDIR=/nand1/tslib-1.4/lib

这两个参数原本在文件中没有,自己编写

回到/home/Raymond/qt-embedded-arm-tslib中

继续我的configure

可是结果还是  The tslib functionality test failed!

You might need to modify the include and library search paths by editing

QMAKE_INCDIR and QMAKE_LIBDIR in

/home/Raymond/qt-embedded-arm-tslib/mkspecs/qws/linux-arm-g++.

请问这是为什么啊,我晕了,谢谢各位朋友帮忙指点

解决办法:

是arm-linux-gcc的路径没有添加到系统变量中。。。

吸取教训 在Shell中输入EXPORT PATH = ....:$PATH 语句时,只在该Shell中可用。

只有

1.修改profile文件:

#vi /etc/profile

在里面加入:

export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

2.修改.bashrc文件:

# vi /root/.bashrc

在里面加入:

export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

才能完成添加!



离线begboy

只看该作者 14楼 发表于: 2012-01-18
另外有关 交叉编译环境 建立,
还建议你看看下面的 链接
http://blog.sina.com.cn/s/blog_6273cce40100ix1q.html
离线jszzz119

只看该作者 15楼 发表于: 2012-01-18
回 14楼(begboy) 的帖子
大哥··· 我是找不到QTimer  不是交叉编译问题····   只要make  OK就好了
而且我还没做到移植到板子上那步····
《铸╰
离线jszzz119

只看该作者 16楼 发表于: 2012-01-19
各位不好意思在windows下面运行是没问题,  不知道在哪个版本不小心吧QTimer 改成了Qtimer导致出错····我错了····
windows下的SDK居然无视大小写  阿门你妹啊

《铸╰
快速回复
限100 字节
 
上一个 下一个