交叉编译Pion网络库时出错

时间:2016-03-28 16:03:53

标签: c++ boost autotools mingw-w64 pion-net

我正在尝试使用mingw64交叉编译用于Windows的Pion网络库.. 这些是我从中获取它们的链接(版本5.0.4 of pion) https://github.com/splunk/pion https://sourceforge.net/projects/mingw-w64/files/

我从

升级1.60.0和MSYS
**mingw-w64.sourceforge.net --> files --> External binary packages --> MSYS**

如果您想知道我为什么使用5.0.4而不是最新版本是因为我也尝试了最新的Pion Library(5.0.7),结果类似,可以使用GNU Autotools构建Pion网络库或Cmake(在5.0.7中)。

这些是我正在尝试的步骤:

  • 打开MSYS:我已经在/ home
  • 下复制了解压缩的Pion包
  • 运行./autogen.sh
  • run ./configure --host = x86_64-w64-mingw32 --build = x86_64-pc-windows

这是我输出中的最后一行:

  

检查与BSD兼容的安装... / bin / install -c

     

./ configure:第20372行:AX_COMPILER_VENDOR:找不到命令

     

检查特定的CPU架构......否

     

检查调试......否

     

检查插件目录... / usr / local / share / pion / plugins

     

./ configure:第20659行:意外令牌“1.35'

附近的语法错误      

./ configure:第20659行:AX_BOOST_BASE(1.35)

在此之后它当然崩溃并且没有完成配置......

我试过用AX_BOOST_BASE删除行,包括里面的括号([1.35]),尝试删除版本和括号,在MSYS中设置BOOST_ROOT路径,包括--with-boost = / path /到/ boost,确保boost目录的格式为boost_1_60_0。

以上都不起作用。我的想法已经用完了,并且想知道是否有人之前成功解决了这样的问题。

1 个答案:

答案 0 :(得分:0)

您的autogen.sh来电未正确生成configure,因为找不到AX_COMPILER_VENDORAX_BOOST_BASE

就我从Git存储库中看到的那样,开发人员没有正确地将m4/目录与这两个(以及其他外部宏)添加到他们的存储库中,所以它只适用于他们的系统,因为他们已经在某个地方有这些宏的副本。

正确的解决方案是找到Autoconf Archive中的宏(AX_前缀是那里的赠品),并在Git存储库中使用这些宏创建一个m4/目录(和可能会从autogen.sh删除虚拟目录的创建。

您还可以参考我在Autotools Mythbuster中撰写的有关macro files的内容。