簡體   English   中英

在64位Debian上交叉編譯32位時找不到Libpcap

[英]Libpcap not found when cross-compiling 32-bit on a 64-bit Debian

我正在嘗試在64位Debian Stretch上編譯32位應用程序。 我已經以這種方式成功編譯了其他幾個應用程序,但是一個使用pcap庫的應用程序給我帶來了問題。 對於我的平台,該庫似乎沒有32位版本。

問題描述

當我嘗試鏈接我的應用程序時,如下所示:

g++ (...objectfiles-and-options...) -m32 -o myapp -lpthread -lpcap

我得到錯誤

/usr/bin/ld: cannot find -lpcap

我檢查了一下,/ usr / lib32中確實沒有libpcap.so(或其變體)。 但是,我正在使用的所有其他庫都在那里(例如libpthread)。 我試圖在其中創建到64位pcap庫的軟鏈接,以防萬一它們應該是多平台兼容的,但這只會導致“搜索-lpcap時跳過不兼容的/usr/lib32/libpcap.so ”。

我已經安裝了libpcap-dev,libc6-dev-i386,gcc-multilib和g ++-multilib(顯然,因為交叉編譯適用於所有不使用libpcap的應用程序)。 我懷疑應該可以安裝一個libpcap-dev-i386,但似乎沒有。

也許我應該提一下,該應用程序可以成功編譯和鏈接為64位。

有人知道我在這里想念的嗎?

您可以自己編譯libpcap。 這可能是比依賴軟件包更好的解決方案。 使用configure for 32bit體系結構,然后使編譯器LDFLAGS指向您的lib或將其安裝在/ usr / lib32 /中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM