【问题标题】:Doxgen uses outdated version of bison OSX Big SirDoxygen 使用过时版本的 bison OSX Big Sur
【发布时间】:2022-11-30 13:55:18
【问题描述】:

我正在尝试使用 Doxygen 为我的代码创建文档。按照 Doxygen 文档,当我运行 cmake -G "Unix Makefiles" .. 时,编译器告诉我

CMake Error at CMakeLists.txt:112 (message):
  Doxygen requires at least bison version 2.7 (installed: 2.3)

但是,当我运行bison -V 时,我看到:

bison (GNU Bison) 3.8.2
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

通过将 export PATH="/usr/local/opt/bison/bin:$PATH" 添加到我的 ~/.zshrcbison 包含在我的路径中。为什么 doxygen cmake 命令会引用旧的 bison 2.3

【问题讨论】:

  • 在 Cygwin 上,我也使用提到的版本并且没有出现错误(并且在调试时我确实看到我们获得了 Bison 的 3.8.2 版)。您使用的是哪个版本的 CMake?
  • 也许您的系统上有多个 Bison 版本,并且根据使用的 shell 选择不同的版本。将 CMakeLists.txt 中的第 112 行更改为 message(SEND_ERROR "Doxygen requires at least bison version 2.7 (installed: ${BISON_VERSION}, from: ${BISON_EXECUTABLE})"),看看会发生什么。
  • 在命令行中设置-DBISON_ROOT=/usr/local/opt/bison 是否可以修复它?
  • @AlexReinking,不,有人告诉我 dbison_root 已经是那条路了。
  • /usr/bin/bison -V 给出了什么?貌似/usr/bin里的bison版本是老版本,没看到/usr/local/opt里的版本。我不知道 -DBISON_ROOT=/usr/local/opt/bison 是否有帮助,否则 -DBISON_EXECUTABLE=/usr/local/opt/bison 可能会这样做。

标签: cmake doxygen bison zshrc


【解决方案1】:

今天遇到了这个,居然找到了一个比较简单的解决办法。有趣的是,message export PATH="/usr/local/opt/bison/bin:$PATH" 会告诉您确切的操作。不幸的是,该消息没有告诉您所需的顺序。我在 ~/.zshrc 的第 3 行或第 4 行添加了该行,然后它开始运行我安装的 ohmyzsh 之类的东西。那个问题解决后。

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加更多详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写出好的答案的信息in the help center
【解决方案2】:

Cannot configure CMake to look for Homebrew installed version of Bison 这篇文章解决了我的问题。 就我而言,我改变了

BISON_EXECUTABLE:FILEPATH=/usr/bin/bison

BISON_EXECUTABLE:FILEPATH=/usr/local/opt/bison/bin/bison

FIND_PACKAGE_MESSAGE_DETAILS_BISON:INTERNAL=[/usr/bin/bison][v2.3()]

FIND_PACKAGE_MESSAGE_DETAILS_BISON:INTERNAL=[/usr/local/opt/bison/bin/bison][v3.8.2()]

在 CMakeCache.txt 然后它完美地工作。 (/usr/local/opt/bison/bin/bison 是“which bison”告诉我的)

【讨论】:

  • 我认为您不应该更改 CMakeCache.txt,而是在 cmake 行上使用 -DBISON_EXECUTABLE=/usr/local/opt/bison/bin/bison
【解决方案3】:

就我而言,我确实喜欢提到的 cmets:在命令行中使用 -DBISON_ROOT=/usr/local/opt/bison 参数。

但首先我清除了 CMake 缓存。

这是我运行的命令:

rm CMakeCache.txt
cmake -G "Unix Makefiles" .. -DBISON_ROOT=/usr/local/opt/bison

【讨论】:

    猜你喜欢
    • 2022-11-09
    • 2021-04-24
    • 2020-11-15
    • 2021-01-06
    • 2021-06-21
    • 2021-03-21
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    相关资源
    最近更新 更多