红联Linux门户
Linux帮助

arm-linux中遇到的问题

发布时间:2008-08-18 09:58:32来源:红联作者:Jlveei
一、安装交叉工具链时遇到的一个问题

操作系统:redhat9.0 用crosstool工具构建交叉工具链,在执行脚本时键入以下命令

#cd crosstool-0.42

#./arm.sh

后,出现以下错误提示:

set both LINUX_DIR and LINUX_SANITIZED_HEADER_DIR - ignoring LINUX_DIR for the build
DEJAGNU not set, so not running any regression tests
GCC_EXTRA_CONFIG not set, so not passing any extra options to gcc's configure script
GLIBC_ADDON_OPTIONS not set, so building all glibc add-on's
+ TOOLCOMBO=gcc-3.3.6-glibc-2.3.2
++ pwd
+ BUILD_DIR=/home/mike/crosstool-0.42/build/arm-linux-/gcc-3.3.6-glibc-2.3.2
++ pwd
+ TOP_DIR=/home/mike/crosstool-0.42
+ test -z ''
+ SRC_DIR=/home/mike/crosstool-0.42/build/arm-linux-/gcc-3.3.6-glibc-2.3.2
+ echo 'SRC_DIR not set, so source tarballs will be unpacked in the build directory'
SRC_DIR not set, so source tarballs will be unpacked in the build directory
+ abort 'Don'\''t run all.sh or crosstool.sh as root, it'\''s dangerous'
+ echo 'Don'\''t' run all.sh or crosstool.sh as root, 'it'\''s' dangerous
Don't run all.sh or crosstool.sh as root, it's dangerous

问题解决:以上提示说明在root用户权限下操作有风险,于是我更给了用户,但又提示权限不够,最后重启了一下系统,以普通用户登陆(原来是以root登陆),在普通用户下,用su命令讲普通用户改为root,这时执行以上操作时顺利通过。

二、在qt下学习helloworld时遇到的问题

#include
#include
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QPushButton hellobtn( "Hello world!", 0 );
hellobtn.resize(100, 20 );
a.setMainWidget( &hellobtn );
hellobtn.show();
return a.exec();
}

这是代码.

这是我执行hello程序时候出现的问题 

[root@fkw root]# cd /root/qt
[root@fkw qt]# qmake
[root@fkw qt]# make
g++ -c -pipe -Wall -W -O2 -g -pipe -march=i386 -mcpu=i686 -fno-use-cxa-atexit -fno-exceptions -DQT_NO_DEBUG -I/usr/lib/qt-3.1/mkspecs/default -I. -I/usr/lib/qt-3.1/include -I.ui/ -I.moc/ -o .obj/hello.o hello.cpp
hello.cpp:1:24: QApplication: 没有那个文件或目录
hello.cpp:2:23: QPushButton: 没有那个文件或目录
hello.cpp: In function `int main(int, char**)':
hello.cpp:5: error: `QApplication' undeclared (first use this function)
hello.cpp:5: error: (Each undeclared identifier is reported only once for each
function it appears in.)
hello.cpp:5: error: syntax error before `(' token
hello.cpp:6: error: `QPushButton' undeclared (first use this function)
hello.cpp:7: error: `hello' undeclared (first use this function)
hello.cpp:9: error: `app' undeclared (first use this function)
hello.cpp:4: warning: unused parameter `int argc'
hello.cpp:4: warning: unused parameter `char**argv'

解决方法:如果qt安装正确的话,这个问题是由于没有修改环境变量引起的,只要将/usr/local/Trolltech/Qt-4.2.2/bin添加到PATH变量,操作如下:

用vi 打开.bash_profile

在文件的最后一行加上:

PATH=/usr/local/Trolltech/Qt-4.2.2/bin:$PATH

export PATH

保存退出。再次编译就不会出现这个问题啦。
文章评论

共有 1 条评论

  1. xuel 于 2010-09-21 10:13:46发表:

    对于第一点:
    版主的解决方法是:上提示说明在root用户权限下操作有风险,于是我更给了用户,但又提示权限不够,最后重启了一下系统,以普通用户登陆(原来是以root登陆),在普通用户下,用su命令讲普通用户改为root,这时执行以上操作时顺利通过。
    这个不正确,问题不是出在不能以root用户运行all.sh,而是目录权限问题,只要将目录权限改为7就行。(本人实际验证),版主只是将国外的数据COPY过来的。