LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 817|回复: 2

新手上路问有关makefile的问题

[复制链接]
发表于 2005-11-28 14:16:43 | 显示全部楼层 |阅读模式
在一般程序默认的makefile中是否已经默认了gcc的编译路径.如果我要使用交叉编译,除了改变编译环境外,是否还要改变makefile中的什么?
makefiel中cc=@cc@是什么意思?
新手上路,大家多多关照
发表于 2005-11-29 20:29:59 | 显示全部楼层
Post by miracle542
在一般程序默认的makefile中是否已经默认了gcc的编译路径.

你是说gcc的路径吗?一般要自己在环境变量里添加.profile或.bashrc文件中。
如果你说的是文件路径的话,一般采用层次编译结构,在顶层Makefile文件中用make -C 文件夹名 的方法进入子目录,调用子目录的Makefile文件进行编译,如果子目录还有子目录,方法相同!
Post by miracle542
如果我要使用交叉编译,除了改变编译环境外,是否还要改变makefile中的什么?
主要是要指定你的库文件位置吧!你机器上的库文件是为你的pc服务的,它并不明白你的目标处理器的架构,你必须指定链接和你处理器相适应的库文件产生的代码才能在你目标机上运行。此外一些和目标机相关的选项非常繁琐,要完全自己搞定的话,对你的目标机结构和编译链接操作系统方面的理解应该很深刻了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-30 09:36:19 | 显示全部楼层
谢谢,楼上,我已经改变了指定的库文件.在编译的时候也实现了用我指定的编译器,以及调用我交叉编译的库文件.只是在最后的link上面,还是使用的是gcc的ld来做的link.
后来我用的是CC=cross_compile ./configure --host= -- prefix=  这样的方法完全实现,但是在checking 的时候出现了一个checking for extra flags to get ANSI library prototypes... configure: error: can not run test program while cross compiling
盼 指教
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表