如何解决mingw无法在Windows10上编译libnet
我使用mingw-get在Windows10系统上安装了MinGW。 然后,我下载了libnet(来自github的ZIP文件)并尝试对其进行编译。 该文档说以“ ./configure && make”开头,但即使在我之后 从cmd.exe切换到MinGW附带的bash(bash 3.1, 提示),它显示“ ./configure:没有这样的文件或目录”。 这并不令我感到惊讶,因为没有名为“ configure”的文件, “ configure.ac”。 我尝试键入“ ./configure.ac”并收到语法错误。 OK,它在文件中说“使用autoconf处理该文件以产生一个 配置脚本”,所以我尝试“ ./autoconf configure.ac”。这给了我
configure.ac:18: error: Autoconf version 2.69 or higher is required
configure.ac:18: the top level
autom4te-2.68: /bin/m4 failed with exit status 63
我该如何前进?我只是从MinGW存储库安装了整个程序。 我认为这意味着某个地方(哪里?)必须有更新版本的 autoconf;我在哪里得到的?我可以从我的autoconf脚本中获取信息吗 Fedora Linux系统?
事实上,我做到了,它给了我同样的错误信息!即使我也复制了 通过autom4te脚本。
帮助?
解决方法
我建议使用MinGW-w64代替旧的MinGW,并使用MSYS2代替旧的MSYS。
在这种环境下,我可以将libnet 0.10.11编译为静态库和共享库,如下所示:
# change the next line the install path
INSTALLPREFIX=/usr/local
sed -e 's/-Werror//' makfiles/mingw.mak > port.mak
( make MINGDIR=$MINGWDIR || make MINGDIR=$MINGWDIR ) &&
mkdir -p $INSTALLPREFIX/lib $INSTALLPREFIX/include $INSTALLPREFIX/bin &&
cp lib/libnet.a $INSTALLPREFIX/lib/libnet.a &&
cp include/libnet.h $INSTALLPREFIX/include/libnet.h &&
echo "EXPORTS" > libnet.def &&
sed -n -e "s/^.*\s\**\(net_[^(]*\)\s*(.*$/\t\1/p" include/libnet.h >> libnet.def &&
sed -n -e "s/^.*extern\s*.*\s*\(net_[^;\[]*\)\(\[.*\]\)*;.*$/\t\1 DATA/p" include/libnet.h >> libnet.def &&
gcc -shared -s -mwindows -def libnet.def -o libnet.dll lib/libnet.a -lws2_32 &&
dlltool --dllname $INSTALLPREFIX/bin/libnet.dll --output-lib $INSTALLPREFIX/lib/libnet.dll.a --input-def libnet.def &&
echo Done
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。