【问题标题】:Error cross compiling Pion Network Library交叉编译 Pion 网络库时出错
【发布时间】:2016-03-28 16:03:53
【问题描述】:

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

我有 boost 1.60.0 和来自

的 MSYS
**mingw-w64.sourceforge.net --> files --> External binary packages --> MSYS**

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

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

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

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

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

./configure: line 20372: AX_COMPILER_VENDOR: command not found

正在检查特定的 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/to /boost,确保boost的目录是boost_1_60_0的正确格式。

上述方法均无效。我的想法已经不多了,想知道以前是否有人成功解决过这样的问题。

【问题讨论】:

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


    【解决方案1】:

    您的autogen.sh 调用没有正确生成configure,因为既没有找到AX_COMPILER_VENDOR 也没有找到AX_BOOST_BASE

    据我从 Git 存储库中看到,开发人员没有正确地将带有这两个(和其他外部宏)的 m4/ 目录添加到他们的存储库中,所以它只能在他们的系统上运行,因为他们已经有一个在某处复制这些宏。

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

    您也可以参考我在 Autotools Mythbuster 中写的关于 macro files 的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 2021-04-20
      • 2018-09-13
      • 2014-01-18
      • 1970-01-01
      相关资源
      最近更新 更多