请教下各位达人哈,我想编译安装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。请问下这怎么回事阿?怎么弄呢
求教bin下gcc版本问题
-
- 帖子: 14
- 注册时间: 2009-09-23 19:29
-
- 帖子: 62
- 注册时间: 2007-08-09 0:23
- 来自: 广东
- 联系:
Re: 求教bin下gcc版本问题
比如
#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!
#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!
-
- 帖子: 14
- 注册时间: 2009-09-23 19:29
Re: 求教bin下gcc版本问题
先谢拉。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了阿。
-
- 帖子: 14
- 注册时间: 2009-09-23 19:29
Re: 求教bin下gcc版本问题
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么?
lrwxrwxrwx 1 root root 18 2009-10-11 12:54 /usr/bin/gcc -> /usr/bin/gcc-3.4.1
1。显示红色,出了问题么?
2。没有问题的话,那是3.4的版本阿,难道不能用来编译安装skyeye么?
上次由 cws1214 在 2009-10-11 13:08,总共编辑 1 次。
-
- 帖子: 62
- 注册时间: 2007-08-09 0:23
- 来自: 广东
- 联系:
Re: 求教bin下gcc版本问题
-
- 帖子: 14
- 注册时间: 2009-09-23 19:29
Re: 求教bin下gcc版本问题
我是手动安装的,知道他的目录/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。
谢谢了
-
- 帖子: 62
- 注册时间: 2007-08-09 0:23
- 来自: 广东
- 联系:
Re: 求教bin下gcc版本问题
兄弟 你这是交叉编译啊,我还是以在本机I386上。。。。。。
如果你要编译在ARM上跑的东西,那么,你应该指明CROSS_COMPILE的CC,AR,AS,而不仅仅是指明GCC,
这是一个很明显的出错原因之一。编译,不单是依赖cc,还要ar,as,ld,nm,strip等等,你前面的情况估计只是指定用arm的cc-3.4,而没有指定用其它(ar,as,ld,nm,strip)。。。解决的办法,最好是在代码的顶层目录把编译相关的工具指定好!
我以为你只是在同一I386平台上把编译器换个版本而已。。。。看来你的硬功夫得修一下啊
如果你要编译在ARM上跑的东西,那么,你应该指明CROSS_COMPILE的CC,AR,AS,而不仅仅是指明GCC,
这是一个很明显的出错原因之一。编译,不单是依赖cc,还要ar,as,ld,nm,strip等等,你前面的情况估计只是指定用arm的cc-3.4,而没有指定用其它(ar,as,ld,nm,strip)。。。解决的办法,最好是在代码的顶层目录把编译相关的工具指定好!
我以为你只是在同一I386平台上把编译器换个版本而已。。。。看来你的硬功夫得修一下啊
-
- 帖子: 14
- 注册时间: 2009-09-23 19:29
Re: 求教bin下gcc版本问题
是啊是啊,的确缺好多基础。我是个新手。。我现在是想装那个skyeye呢。没有设计应用程序啊。你说的那些都是GNU里面的么,各个概念的功能大概了解一点,我还没有烧过程序。还不了解这些东西具体在什么时候怎么用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平台上把编译器换个版本而已。。。。看来你的硬功夫得修一下啊
有没有详细点的设置方法呢。
非常谢谢。