Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1148612
  • 博文数量: 241
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 2279
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-27 19:53
个人简介

JustForFun

文章分类

全部博文(241)

文章存档

2023年(8)

2022年(2)

2021年(3)

2020年(30)

2019年(11)

2018年(27)

2017年(54)

2016年(83)

2015年(23)

我的朋友

分类: LINUX

2016-09-16 17:53:03

Looking up port of RPC 100005/1 on 192.168.1.10                                                                                       
VFS: Mounted root (nfs filesystem).                                                                                                   
Freeing init memory: 148K                                                                                                             
Warning: unable to open an initial      console.                                                                                           
request_module: runaway loop modprobe binfmt-464c                                                                                     
request_module: runaway loop modprobe binfmt-464c                                                                                     
request_module: runaway loop modprobe binfmt-464c

以上问题是要换成交叉编译器

//////////////////////////////////////////////////////////
编译出问题 
crt1.o: No such file: No such file or directory

[root@bogon 4.2.2-eabi]# find .  -name "crt1.o"  -print
./usr/lib/crt1.o
解决问题


After reading the that jeremiah posted, i found the gcc flag that works without the symlink:

gcc -B/usr/lib/x86_64-linux-gnu hello.c 

So, you can just add -B/usr/lib/x86_64-linux-gnu to the CFLAGS variable in your Makefile.
在主make里修改CFLAGS          := -I/4.2.2-eabi/usr/include -B/4.2.2-eabi/usr/lib
/////

-Bprefix

这个选项指定GCC到哪去查找自己的可执行文件、库文件、头文件和数 据文件。编译器驱动程序运行一个或多个子程序如ccp,cc1,as,ld。当编译器需要运行某个子程序时,它将prefix作业子程序的前缀(如 prefix/as)。为了正确运行每个子程序,编译器驱动程序首先-B选项指定的前缀,如果那个可文件(如prefix/as)没有查找到或者没有指定 -B选项,则编译器驱动程序将尝试使用标准前缀:/usr/lib/gcc/ 和/usr/local/lib/gcc/。如果用这两个前缀也没查找到,则使用没有修改过的程序名(如as)在PATH环境变量指定的路径下查找。

编译器会核查-B选项提供的前缀(目录),必要情况下编译器会在最后加一个分隔符。如-B/usr/bin  则最后的前缀会为:/usr/bin/,编译器在最后增加了分隔符。

-B选项指定的前缀同样对链接器查找库文件有效,因为编译器会将该选 项转换为-L选项。另外-B选项同样也对预处理器查找头文件时有效,因为编译器会将该选项转换为预处理器中的-isystem选项,在这种情况下,编译器 会在prefix最后加上“include”即prefix/include。

如果需要,运行时库文件“libgcc.a”同样会通过-B选项指定的前缀来查找,如果没找到,则接着会尝试用上面提到的那两个标准前缀查找,如果还没有找到,则会忽略掉对libgcc.a的链接。

另外一种指定prefix前缀的方式是通过环境变量GCC_EXEC_PREFIX来指定,不过会在-B选项指定的前缀之后搜索。即先尝试用-B选项指定的前缀再尝试使用GCC_EXEC_PREFIX指定的前缀,再用标准前缀。其实前面提到的两个标准前缀应该是在安装编译器是指它的!!所以每个系统可能还不一样。


/////////////////////////////////////////////////////////////////////////////////////////////////////

阅读(885) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~