Re: [問題] samba移植 makefile出錯(talloc.o)
※ 引述《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)
推
09/11 10:15, , 1F
09/11 10:15, 1F
→
09/11 10:15, , 2F
09/11 10:15, 2F
推
09/11 23:54, , 3F
09/11 23:54, 3F
推
09/16 00:04, , 4F
09/16 00:04, 4F
→
09/16 00:05, , 5F
09/16 00:05, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):