Re: [問題] samba移植 makefile出錯(talloc.o)

看板LinuxDev作者 (醉臥美人膝,醒掌天下權)時間13年前 (2012/09/11 01:49), 編輯推噓3(302)
留言5則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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
1) download buildroot, 2) make menuconfig, 3) make
09/11 23:54, 3F

09/16 00:04, , 4F
謝謝大家 上個星期五我已經porting 進去了
09/16 00:04, 4F

09/16 00:05, , 5F
確實沒錯 升級之後win7 可以connect to samba server
09/16 00:05, 5F
文章代碼(AID): #1GJfYWlT (LinuxDev)
文章代碼(AID): #1GJfYWlT (LinuxDev)