Doxygen - 无法找到 FLEX(缺失:FLEX_EXECUTABLE)

33

我知道这里有非常相似措辞的问题,但我找不到我的问题的答案,所以让我们开始吧:
我想知道哪些C++方法是被其他方法调用的,所以在谷歌上找到了Doxygen。
在他们的页面上,安装过程似乎很简单:

如果您已经安装了必要的构建工具(即g++、python、cmake、flex、bison),那么您应该执行以下操作以获取存储库的初始副本:

git clone https://github.com/doxygen/doxygen.git
cd doxygen
mkdir build
cd build
cmake -G "Unix Makefiles" ..
make

直到cmake -G "Unix Makefiles" ..一切都进行得很好,然后在该命令中出现以下错误:

test@test-VirtualBox:~/doxygen/build$ cmake -G "Unix Makefiles" ..
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find FLEX (missing: FLEX_EXECUTABLE)
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.5/Modules/FindFLEX.cmake:230 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:84 (find_package)

我想:没什么大不了的,为什么一个软件不能直接用呢……看来我需要安装flex
于是我这样做:
sudo apt-get update
sudo apt-get install flex
sudo apt autoremove(因为安装后命令行建议我这样做)

现在我觉得flex已经安装好了,我再次尝试运行 cmake -G "Unix Makefiles" .. ,但还是出现同样的错误。我关闭命令行,重新打开,再试一次——还是同样的错误……
所以我慢慢地开始有点恼火,并转向 Stack Overflow 寻求帮助 :D
我到底做错了什么?

另外,因为我在其他问题的评论中看到有人询问,这里是flex的输出:

test@test-VirtualBox:~/doxygen/build$ flex
The program 'flex' can be found in the following packages:
 * flex
 * flex-old
Try: sudo apt install <selected package>

1
消息“程序'flex'可以在以下软件包中找到:”表示flex未安装。可能是apt autoremove将其删除了。 - Tsyvarev
@Tsyvarev,这确实解决了我的问题 - 如果您愿意,可以将其发布为答案 - 但事情仍然没有完全解决,但我会先谷歌一下,无论如何我都必须再发一个问题,因为现在是另一个问题。 - Cold_Class
嗯,问题似乎出在使用apt安装软件包上,这不是一个编程问题... - Tsyvarev
1
@Tsyvarev 也许这个问题应该移动到“AskUbuntu”论坛,你认为呢? - Cold_Class
我将删除这个问题,因为迁移并不像看起来那么容易,只有真正好的问题才值得像这里https://meta.stackoverflow.com/questions/253869/can-we-have-more-options-in-the-closing-off-topic-migration中所示的那样。 - Cold_Class
显示剩余4条评论
1个回答

66

看起来 apt autoremove 真正删除了我在上一步刚安装的软件包。
所以对我而言可行的方法是:

git clone https://github.com/doxygen/doxygen.git
cd doxygen
mkdir build
cd build

这些是新的:


sudo apt-get install flex
sudo apt-get install bison

cmake -G "Unix Makefiles" ..
make

...但当然这种恐怖不会止于此,详见我的下一个问题 :D


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接