【问题标题】:Header file not found when compiling Vowpal Wabbit on Mac OS X在 Mac OS X 上编译 Vowpal Wabbit 时找不到头文件
【发布时间】:2014-02-11 15:14:06
【问题描述】:

我已使用以下版本的 g++ 将 Vowpal Wabbit(版本 7.4)下载到我的 Mac(OS X Mavericks):

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-   dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix

我修改了安装随附的 Makefile,以便它从我的 Mac 上的正确文件夹中获取 Boost(1.55 版)头文件和库(我通过编写和编译一个简单的程序进行检查,一切正常)。但是,当我运行 ma​​ke 时,它找不到头文件,例如:

In file included from library_example.cc:2:
./../vowpalwabbit/parser.h:15:10: fatal error: 'boost/program_options.hpp' file
  not found

感谢您在跟踪问题方面提供的任何帮助。

【问题讨论】:

    标签: c++ boost osx-mavericks vowpalwabbit


    【解决方案1】:

    vowpal wabbit 依赖于 C++ 库+headers boost/program_options

    必须先安装此依赖项,然后才能从源代码构建 vowpal wabbit。

    由于其他人可能有类似的问题,我将尝试回答更一般的问题:

    如何在 Mac OS-X 上从头开始/源代码构建 vowpal wabbit?

    以下说明假设您根本没有开发环境。如果这样做,您可以跳过任何您认为不必要的步骤。

    重要:信用到期。这些说明几乎 100% 由 Aaron Shumacher 编写:我在网络搜索后从 his page 获取了这些说明,并进行了相对较小的修改、添加和澄清。 p>

    第 0 阶段,在 Mac OS-X 上开发所需的基本先决条件:

    • 安装Xcode 命令行工具。这将为您提供 Apple 的开发环境(编译器、make 等)。
    • 安装Homebrew 包管理器。

    一旦您安装了Homebrew,其他所有缺少的东西都可以轻松安装。

    安装从源代码构建所需的工具:

    brew install libtool
    brew install automake
    brew install boost
    brew install git
    

    现在,您可以下载 vowpal wabbit 源代码树(最新):

    下载:

    git clone https://github.com/JohnLangford/vowpal_wabbit.git
    cd vowpal_wabbit
    

    您现在已准备好完成标准构建(又名make)流程。

    构建:

    [编辑:2014-07-20]:./autogen.sh 在某些环境中可能无法正常工作。我建议首先尝试使用简单的make 进行构建。包含的Makefile 已经非常强大,在大多数环境中都可以正常工作。运行autogen/automake 的问题在于它可能会用一个坏的Makefile 覆盖(相当不错的)原始Makefile

    # ./autogen.sh  # commented out, use only if 'make' alone doesn't work
    make
    make test
    

    注意:验证(使用make test)您的二进制文件是否按预期工作很重要。如果您发现任何故障,请在邮件列表中报告,并仅在故障对您无关紧要时继续安装(例如,只有一些您不关心的很少使用的选项/测试失败)。有关测试的完整详细信息,请参阅 test/RunTests 脚本。

    安装:

    make install
    

    此时,您应该在/usr/local/bin/vw拥有 vowpal wabbit

    【讨论】:

    • 该网站的rules for giving credit to sources 需要链接。您是否丢失了作为回答基础的 Aaron 页面的 URL?
    • 感谢您的指导,一切正常。
    • 嗨 - 谢谢!我也有一段时间没有更新那个帖子了;它可能需要一些调整才能让它工作! :)
    • 一个小附录 - 我必须将 autogen.sh 中的 AC_PATH 变量从 /opt/local/share 更改为 /usr/local/share,以便让 autogen 找到 brew 安装的 automake 文件.看起来也不再需要 glibtoolize 编辑步骤,因为 vowpal wabbit 的 git master 上的 autogen.sh 现在检查系统架构并选择正确的命令。
    • 谢谢@mistertim,我将删除 glibtoolize 噪音,因为它不再需要。您是否可以通过 AC_PATH 修复向 John Langford(主)发送 github 拉取请求?这将不胜感激。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 2013-04-22
    相关资源
    最近更新 更多