Doxgen 使用过时版本的 bison OSX Big Sir

问题描述 投票:0回答:4

我正在尝试使用 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.
通过将

bison

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

cmake doxygen bison zshrc
4个回答
2
投票

就我而言,我确实喜欢提到的评论:在命令行中使用

-DBISON_ROOT=/usr/local/opt/bison
参数。

但首先我清除了 CMake 缓存。

这是我运行的命令:

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

0
投票

我今天遇到了这个问题,实际上找到了一个相对简单的解决方案。有趣的是,

message export PATH="/usr/local/opt/bison/bin:$PATH"
是告诉你到底要做什么。不幸的是,该消息没有告诉您所需的顺序。在它开始运行我安装的 ohmyzsh 之类的东西之前,我将该行添加到了 ~/.zshrc 的第 3 行或第 4 行。问题解决后。


0
投票

无法配置 CMake 来查找 Homebrew 安装的 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 是“哪个野牛”告诉我的)


0
投票

删除包含 CMakeCache.txt 的构建文件夹。 我通过brew将bison 2.7升级到3.X,但是CMakeCache.txt有bison(2.7)之前版本的数据,所以失败了。

© www.soinside.com 2019 - 2024. All rights reserved.