gpt4 book ai didi

java - 在 ARM 处理器上构建 jNetPcap 时出现 "libpcap.so is not a regular file"错误

转载 作者:太空宇宙 更新时间:2023-11-04 13:58:32 24 4
gpt4 key购买 nike

我正在尝试在 Raspberry Pi 上编译 jNetPcap 源代码,但在运行 ant 编译时遇到以下错误。

[exec] Can't do inplace edit: ./build/lib/libpcap.so is not a regular file.
[exec] Result: 1
[echo] Fixed SONAME: ./build/lib/libpcap.so
[echo] readelf: Error: './build/lib/libpcap.so' is not an ordinary file
...
BUILD FAILED
/home/pi/myDir/build.xml:731: gcc failed with return code 1

build.xml 的第 731 行(及后续行)是:

...
<cc runtime="dynamic" outtype="shared" outfile="${build.lib.dir}/${lib.pcap.basename}" debug="${compiler.debug}" objdir="${build.obj.dir}" multithreaded="compiler.multithreaded" exceptions="compiler.exceptions" warnings="${compiler.warnings}">

<env key="PATH" path="${compiler.cc.bin.dir};${env.PATH}" />

<fileset dir="${src.c.dir}" />
<includepath location="${build.include.dir}" />
<includepath location="${src.c.dir}" />
<sysincludepath location="${java.sdk.include.dir}" />
<sysincludepath location="${java.sdk.include.dir}/linux" />
<defineset define="LIBPCAP_VERSION=0x${compiler.LIBPCAP_VERSION}" if="compiler.LIBPCAP_VERSION" />
<defineset define="DEBUG" if="DEBUG" />

<linker name="${compiler.ld.cmd}">
<syslibset libs=":../lib/libpcap.so" />

<linkerarg value="-Wl,-soname,lib${lib.pcap.basename}.so" />

<linkerarg value="-lstdc++" />
</linker>
</cc>
...

看来根本问题是“.so”文件在某种程度上是特殊的,因此需要以不同的方式处理它们(作为旁注;也许这个 build.xml 在 Ubuntu 中工作,因为它知道将“.so”文件与普通文件相同)。我只是不知道如何修改此 build.xml,以便将它们视为特殊文件。

我该如何解决这个问题?

最佳答案

使用以下属性来修复。它在我的Linux上运行。尝试一下它是否可以在树莓派上工作。但我不确定。

<linker> 
<libset libs="pcap" />
<libset dir="path of lib" libs="pcap" />
</linker>

没有.so和lib

关于java - 在 ARM 处理器上构建 jNetPcap 时出现 "libpcap.so is not a regular file"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29564775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com