[英]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.