gcc編譯的問題

我們生活周遭存在太多太多的 embedded system ,過去 embedded system 有專屬的 OS,現在 linux 也可以應用在嵌入式環境,不過本版將廣泛討論所有嵌入式系統不只 linux 喔,歡迎有這方面經驗或有興趣的朋友一同進來討論。

版主: chester

gcc編譯的問題

文章wywu » 週二 9月 13, 2005 11:49 pm

我版子是s3c2410的版子.我用arm編譯一個程式它顯示
ether.c:22: pcap.h: No such file or directory
請問我這個是要找出一般的pcap.h還是說要for arm的
還有pcap.h該放置在哪個資料夾內
wywu
可愛的小學生
可愛的小學生
 
文章: 10
註冊時間: 週二 9月 06, 2005 3:08 pm

文章richliu » 週三 9月 14, 2005 1:08 am

pcap.h 應該是 libpcap 的一部份吧, 你要先抓 libpcap 的 source code 下來
compile 後, 再將你程式的 include library 指過去.
richliu
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週二 8月 16, 2005 11:22 pm
來自: 中華民國

文章wywu » 週三 9月 14, 2005 8:55 pm

我已經把libpcap順利的裝在gcc裡面了
但是剛剛編譯出現了下列的錯誤
[wywu@localhost 2.1]$ /usr/local/arm/2.95.3/bin/arm-linux-gcc -o ether ether.c
/home/wywu/tmp/ccblL6ro.o: In function `main':
/home/wywu/tmp/ccblL6ro.o(.text+0x348): undefined reference to `pcap_open_live'
/home/wywu/tmp/ccblL6ro.o(.text+0x3a4): undefined reference to `pcap_loop'
/home/wywu/tmp/ccblL6ro.o(.text+0x3bc): undefined reference to `pcap_geterr'
/home/wywu/tmp/ccblL6ro.o(.text+0x3e0): undefined reference to `pcap_close'
collect2: ld returned 1 exit status
[wywu@localhost 2.1]$

那個是不是因為pcap.h版本不一樣.他所指定的也不太一樣
wywu
可愛的小學生
可愛的小學生
 
文章: 10
註冊時間: 週二 9月 06, 2005 3:08 pm

文章企鵝狂 » 週三 9月 14, 2005 10:32 pm

代碼: 選擇全部
/usr/local/arm/2.95.3/bin/arm-linux-gcc -lpcap -o ether ether.c


這樣子呢?
-lpcap這樣子ld才知道要去找libpcap.so來link
http://news.bbc.co.uk/1/hi/world/asia-pacific/country_profiles/1285915.stm


Country profile: Taiwan
Map of Taiwan
Taiwan is the island which has for all practical purposes been independent for half a century, but which China regards as a rebel region that must be reunited with the mainland - by force if necessary.
企鵝狂
活潑的高中生
活潑的高中生
 
文章: 477
註冊時間: 週三 3月 31, 2004 11:13 am
來自: 台灣共和國

文章wywu » 週三 9月 14, 2005 11:12 pm

我依照你剛剛回po的方法/usr/local/arm/2.95.3/bin/arm-linux-gcc -lpcap -o ether ether.c結果還是一樣.不知道是我那裡用錯了.
我是下載了debian libpcap依照上面的路徑放入資料夾內.但是我沒有compile .因為我剛接觸所以不清楚怎麼compile.可能因為這樣而找不到吧
wywu
可愛的小學生
可愛的小學生
 
文章: 10
註冊時間: 週二 9月 06, 2005 3:08 pm

文章richliu » 週三 9月 14, 2005 11:31 pm

你 compiled pcap 之後, 應該會有一個 libpcap.a 檔
arm-linux-gcc -o ether ether.c libpcap.a

這應可以解決你的問題, 這是做 Static Link

若是
arm-linux-gcc -L[你的 libpcap.o 所在位置] -lpcap -o ether ether.c
這樣也可以

老實講這是很基本的 cross compile 問題
你應該自己去看 Embedded Linux 相關書籍或是 Gnu toolchain 的書籍, 就可以了解了.
richliu
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週二 8月 16, 2005 11:22 pm
來自: 中華民國

文章wywu » 週四 9月 15, 2005 2:03 am

歐.因為我抓到的裡面有control.tar.gz及data.tar.gz兩個壓縮檔.
因為我至直接把上面的解壓縮後在control裡面有control md5sums preinst
三個檔案.data裡面有usr裡面放著include lib share資料夾.裡面已經有libpcap.a
的檔案.我在想我的問題主要不是在ether的compile而是我pcap沒有經過
compile就直接放在arm-gcc的lib裡面我手上的書都有介紹gcc的程式編譯
但是沒有看到說如果缺少所需的lib要如何安裝上去
wywu
可愛的小學生
可愛的小學生
 
文章: 10
註冊時間: 週二 9月 06, 2005 3:08 pm

文章訪客 » 週四 9月 15, 2005 12:51 pm

wywu 寫:因為我抓到的裡面有control.tar.gz及data.tar.gz兩個壓縮檔.

這是 deb 檔的內容耶...不知道你是怎麼抓的...一般是不會這樣分開放的...

deb 可以用 dpkg 裝, 也可以用 ar + tar 把它解開自己硬上...如果你沒有需要 cross-link, 那應該用 dpkg 裝比較好...
訪客
 

文章wywu » 週四 9月 15, 2005 10:28 pm

我的系統是Mandriva2005所以我下載了libpcap0.8-ddev_0.9.3-1_arm_deb.卻不清楚怎麼裝所以我直接解壓縮放在對應的資料夾內.
我是學生剛接觸這種東西所以還不太熟.所以請大大幫我一下

我把未編譯程式放在 http://us.f1.yahoofs.com/bc/4329819a_88 ... DBuH3kShJX 希望哪位大大可以幫我編譯一下
或是有詳細的方法.我的是用cross-2.95.3 的ToolChain

我的信箱wywu76@yahoo.com.tw.
wywu
可愛的小學生
可愛的小學生
 
文章: 10
註冊時間: 週二 9月 06, 2005 3:08 pm

文章richliu » 週四 9月 15, 2005 11:17 pm

你要的東西應該在
http://www.tcpdump.org/release/libpcap-0.9.3.tar.gz
解壓縮自己看 readme 吧.

如果你沒有辦法自己處理, 花錢找 consult 應該不錯.
如果你是學生, 就應該自己想辦法
而不是找人"幫"
richliu
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週二 8月 16, 2005 11:22 pm
來自: 中華民國

文章benlau » 週五 9月 16, 2005 1:11 pm

wywu 寫:我的系統是Mandriva2005所以我下載了libpcap0.8-ddev_0.9.3-1_arm_deb.卻不清楚怎麼裝所以我直接解壓縮放在對應的資料夾內.
我是學生剛接觸這種東西所以還不太熟.所以請大大幫我一下

我把未編譯程式放在 http://us.f1.yahoofs.com/bc/4329819a_88 ... DBuH3kShJX 希望哪位大大可以幫我編譯一下
或是有詳細的方法.我的是用cross-2.95.3 的ToolChain

我的信箱wywu76@yahoo.com.tw.


你抓的是ARM Debian stable還是unstable的套件,2.95.3的toolchain老舊了點,用unstable套件的話大概也link不成.

control.tar.gz是不用理會的,把data那個解壓,然後看看`arm-linux-gcc -print-seach-dirs`的結果,在libraries那項找
搜尋路徑,最後再把東西抄過去。

如果包括/usr/arm-linux/lib及你在用Debian系統,那麼最簡單是用dpkg-cross把ARM的套件轉成native的套件安裝,之後就可以直接編程。

而不想安裝的話就直接用 -L 參數去指定libraries的搜尋路徑好了.
benlau
可愛的小學生
可愛的小學生
 
文章: 8
註冊時間: 週三 8月 17, 2005 9:39 am

文章wywu » 週五 9月 16, 2005 6:22 pm

我大概知道了.目前我就先試著把libpcap重新編譯.或是把程式改寫成只需基本的lib.謝謝各位大大的解答.
wywu
可愛的小學生
可愛的小學生
 
文章: 10
註冊時間: 週二 9月 06, 2005 3:08 pm


回到 embedded system

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron