当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 求教bin下gcc版本问题
帖子发表于 : 2009-10-11 12:03 

注册: 2009-09-23 19:29
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
请教下各位达人哈,我想编译安装skyeye1.2.7

问题1。 是不是只能用GCC-3.4的版本呢?

我在make的时候报了如下错误:
/usr/include/bits/fcntl2.h:51: 错误: 调用‘__open_missing_mode’,声明有错误属性:open with O_CREAT in second argument needs 3 arguments
make[2]: *** [nandflash_smallblock.o] 错误 1
make[2]:正在离开目录 `/home/cws/桌面/skyeye-1.2.7_rc1/device'
make[1]: *** [all-recursive] 错误 1
make[1]:正在离开目录 `/home/cws/桌面/skyeye-1.2.7_rc1'
make: *** [all] 错误 2

cws@cws-laptop:~/桌面/skyeye-1.2.7_rc1$ echo $path里面也有/usr/local/arm/3.4.1/bin阿

google了一下,看到一种解决方法:
修改bin下gcc的link,但发现只有gcc-4.3,没有gcc-3.4,改不过来了,我已经装过gcc3.4.1了

问题2。请问下这怎么回事阿?怎么弄呢


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 求教bin下gcc版本问题
帖子发表于 : 2009-10-11 12:20 

注册: 2007-08-09 0:23
帖子: 62
地址: 广东
送出感谢: 0 次
接收感谢: 2
比如
#ll /usr/bin/gcc*

lrwxrwxrwx 1 root root 7 2009-07-04 17:33 /usr/bin/gcc -> gcc-4.3
-rwxr-xr-x 1 root root 74100 2005-11-20 03:32 /usr/bin/gcc-2.95
-rwxr-xr-x 1 root root 208068 2009-03-17 08:30 /usr/bin/gcc-4.3
可以看到已经装了两个GCC版本,默认的情况是gcc-4.3,因为这个链接文件 gcc是链接到gcc-4.3。

有两个办法可以使用指定GCC版本:、
方法1。在要编译的代码目录的顶层Makefile中去指定GCC版本或路径
方法2。重新link一下,ln -sf /usr/bin/gcc-2.95 /usr/bin/gcc ;当你下次要用到GCC4。3时,再把它link回来
ln -sf /usr/bin/gcc-4.3 /usr/bin/gcc

OK!


_________________
请大家多多指教。michaelbmg@gmail.com
BLOG:http://blog.sina.com.cn/toddbmg


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 求教bin下gcc版本问题
帖子发表于 : 2009-10-11 12:42 

注册: 2009-09-23 19:29
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
toddbmg 写道:
比如
#ll /usr/bin/gcc*

lrwxrwxrwx 1 root root 7 2009-07-04 17:33 /usr/bin/gcc -> gcc-4.3
-rwxr-xr-x 1 root root 74100 2005-11-20 03:32 /usr/bin/gcc-2.95
-rwxr-xr-x 1 root root 208068 2009-03-17 08:30 /usr/bin/gcc-4.3
可以看到已经装了两个GCC版本,默认的情况是gcc-4.3,因为这个链接文件 gcc是链接到gcc-4.3。

有两个办法可以使用指定GCC版本:、
方法1。在要编译的代码目录的顶层Makefile中去指定GCC版本或路径
方法2。重新link一下,ln -sf /usr/bin/gcc-2.95 /usr/bin/gcc ;当你下次要用到GCC4。3时,再把它link回来
ln -sf /usr/bin/gcc-4.3 /usr/bin/gcc

OK!


先谢拉。

1。这个更改的方法我试过了阿 。还是不能解决问题
2。怎么来确定我当前用的是哪个版本的gcc呢?
3。我的/usr/bin下没有gcc-3.4,是不是会导致这个命令不起作用了?只有默认的那个gcc4.3,但是我装过gcc-3.4了阿。 :em06


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 求教bin下gcc版本问题
帖子发表于 : 2009-10-11 12:56 

注册: 2009-09-23 19:29
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
cws@cws-laptop:~/桌面/skyeye-1.2.7_rc1$ ls /usr/bin/gcc -l
lrwxrwxrwx 1 root root 18 2009-10-11 12:54 /usr/bin/gcc -> /usr/bin/gcc-3.4.1

1。显示红色,出了问题么?
2。没有问题的话,那是3.4的版本阿,难道不能用来编译安装skyeye么? :em06


最后由 cws1214 编辑于 2009-10-11 13:08,总共编辑了 1 次

页首
 用户资料  
 
5 楼 
 文章标题 : Re: 求教bin下gcc版本问题
帖子发表于 : 2009-10-11 13:00 

注册: 2007-08-09 0:23
帖子: 62
地址: 广东
送出感谢: 0 次
接收感谢: 2
方法1你不成功,并不代表这个方法不可行,可能你的操作不当(要找到被export 的那个变量定义处)
方法2。装了gcc3.4,那你应该知道它在哪里啊,如果是用apt-get安装的,那么默认是在/usr/bin中有,如果是手动安装的,那么你要看下--prefix指的是哪里,再找不着就find一下,比如
代码:
find /usr -name "gcc*" -exec ls -l {} \;

代码:
find /opt -name "gcc*" -exec ls -l {} \;


就知道在哪里鸟。。。。吃饭去


_________________
请大家多多指教。michaelbmg@gmail.com
BLOG:http://blog.sina.com.cn/toddbmg


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 求教bin下gcc版本问题
帖子发表于 : 2009-10-11 13:11 

注册: 2009-09-23 19:29
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
toddbmg 写道:
方法1你不成功,并不代表这个方法不可行,可能你的操作不当(要找到被export 的那个变量定义处)
方法2。装了gcc3.4,那你应该知道它在哪里啊,如果是用apt-get安装的,那么默认是在/usr/bin中有,如果是手动安装的,那么你要看下--prefix指的是哪里,再找不着就find一下,比如
代码:
find /usr -name "gcc*" -exec ls -l {} \;

代码:
find /opt -name "gcc*" -exec ls -l {} \;


就知道在哪里鸟。。。。吃饭去


我是手动安装的,知道他的目录/usr/local/arm/3.4.1/bin/gcc-3.4.1,那怎么把他link过去呢?
我用了下sudo ln -sf /usr/local/arm/3.4.1/bin/gcc-3.4.1 /usr/bin/gcc,还是显示的红色。是不是有问题阿?转到gcc-4.3显示的紫色。不能make。 :em06
谢谢了


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 求教bin下gcc版本问题
帖子发表于 : 2009-10-11 14:54 

注册: 2007-08-09 0:23
帖子: 62
地址: 广东
送出感谢: 0 次
接收感谢: 2
兄弟 你这是交叉编译啊,我还是以在本机I386上。。。。。。

如果你要编译在ARM上跑的东西,那么,你应该指明CROSS_COMPILE的CC,AR,AS,而不仅仅是指明GCC,
这是一个很明显的出错原因之一。编译,不单是依赖cc,还要ar,as,ld,nm,strip等等,你前面的情况估计只是指定用arm的cc-3.4,而没有指定用其它(ar,as,ld,nm,strip)。。。解决的办法,最好是在代码的顶层目录把编译相关的工具指定好!

我以为你只是在同一I386平台上把编译器换个版本而已。。。。看来你的硬功夫得修一下啊


_________________
请大家多多指教。michaelbmg@gmail.com
BLOG:http://blog.sina.com.cn/toddbmg


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 求教bin下gcc版本问题
帖子发表于 : 2009-10-11 16:53 

注册: 2009-09-23 19:29
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
toddbmg 写道:
兄弟 你这是交叉编译啊,我还是以在本机I386上。。。。。。

如果你要编译在ARM上跑的东西,那么,你应该指明CROSS_COMPILE的CC,AR,AS,而不仅仅是指明GCC,
这是一个很明显的出错原因之一。编译,不单是依赖cc,还要ar,as,ld,nm,strip等等,你前面的情况估计只是指定用arm的cc-3.4,而没有指定用其它(ar,as,ld,nm,strip)。。。解决的办法,最好是在代码的顶层目录把编译相关的工具指定好!

我以为你只是在同一I386平台上把编译器换个版本而已。。。。看来你的硬功夫得修一下啊


:em06 是啊是啊,的确缺好多基础。我是个新手。。我现在是想装那个skyeye呢。没有设计应用程序啊。你说的那些都是GNU里面的么,各个概念的功能大概了解一点,我还没有烧过程序。还不了解这些东西具体在什么时候怎么用 :em06
有没有详细点的设置方法呢。
非常谢谢。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译