作者RouterHsieh (醉卧美人膝,醒掌天下权)
看板LinuxDev
标题Re: [问题] samba移植 makefile出错(talloc.o)
时间Tue Sep 11 09:49:16 2012
※ 引述《nana0130 (小那)》之铭言:
: 大家好,我还是linux dev新手 瞎子摸象中
: 很多白痴问题,还请大家帮帮忙
: 我想要移植samba 3.2.12 到嵌入式中
: 我只需要生出smbd这个执行档
: 看看能不能像网站说的可以支援到win 7
: http://wiki.samba.org/index.php/Windows7
: 首先我下载了samba 3.2.12 解开之後,在 source资料夹中
: 执行./configure
你从这一步就开始错了...
基本上configure这只程式,
是要让你拿来生出可以用的Makefile/header files,
如果你没在後面加任何参数,
那这只程式在产生Makefile的时候会认为你是要编"x86"平台的binary档。
(我假设你现在的host是x86,也就是你在执行cross compiler的平台)
: 不是很清楚他到底在做什麽,但是我发现他会自动产生一个很复杂的Makefile
: 对於Makefile 小的只懂一点点简单的
: 所以我就先试试看 在自己的pc(ubuntu)上 先编译看看
: 以下是我的改法
: .....
: ......
: LIBS=-lcrypt -lresolv -lresolv -lnsl -ldl
: #CC=gcc //make 掉这个
: CC=/export/rtl819x_svn4/toolchain/rsdk-1.3.6-4181-EB-2.6.30-0.9.30/bin/
: rsdk-linux-gcc //改用板子上的 gcc去编编看 这个简单的我会改
: SHLD=${CC} ${CFLAGS}
: LIB_PATH_VAR=LD_LIBRARY_PATH
: .....
: ........
上面这个就真的乱搞了,那个透过configure产生出来的Makefile不能这样改得= =
如果你想要透过cross compiler去编出可以放在板子上面的东西,
那请先阅读一下configure这只shell script在干嘛。
(一般而言可以下 ./configure --help)
理论上可以指定host/target/build这些参数。
举个例子,如果你是在x86的机器上要编出给mips跑得binary(其他platform亦同),
那原则上target那边要指定成mips(或你的板子上面所用的平台)。
补充一下,不知道你是在工作了没人带还是学校要做专题,
不过要是对嵌入式系统(包括cross compile)没啥概念的话,
建议去找以下两本书来看一下:
Embedded Linux 嵌入式系统开发实务
http://www.tenlong.com.tw/items/9574429644?item_id=339562
建构嵌入式 Linux 系统
http://www.tenlong.com.tw/items/9866840336?item_id=48308
至於autoconf/automake这些东西网路上的文件倒是不少,咕狗一下就有了,
只是没看过啥中文书就是了,讲makefile的语法的倒是还不少。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.34.86.26
※ 编辑: RouterHsieh 来自: 114.34.86.26 (09/11 09:56)
1F:推 nana0130:谢谢你的资讯,,真是很汗颜 我是你说的前面那种~~^ ^" 09/11 10:15
2F:→ nana0130:我会在试试看~~感谢你~~ 09/11 10:15
3F:推 cobrasgo:1) download buildroot, 2) make menuconfig, 3) make 09/11 23:54
4F:推 nana0130:谢谢大家 上个星期五我已经porting 进去了 09/16 00:04
5F:→ nana0130:确实没错 升级之後win7 可以connect to samba server 09/16 00:05