【问题标题】:How to build C++ CMake project using Clion with flex and bison如何使用 Clion 和 flex 和 bison 构建 C++ CMake 项目
【发布时间】:2021-02-09 13:09:56
【问题描述】:

我正在尝试构建一个我克隆的 git 项目,该项目使用 CMake 进行编译,需要 bison 和 flex。 我正在使用 Windows 10 和 Clion IDE。

我已经从https://sourceforge.net/projects/winflexbison/ 下载了 Win flex-bison 但我不明白如何将 CMake 指向我下载的 win_flex_bison 文件。

目前在线构建失败:

find_program(BISON_EXECUTABLE bison)

if(NOT EXISTS ${BISON_EXECUTABLE})
    message("Could not find bison executable.")
endif(NOT EXISTS ${BISON_EXECUTABLE})


find_program(FLEX_EXECUTABLE flex)

if(NOT EXISTS ${FLEX_EXECUTABLE})
        message("Could not find flex executable.")
endif(NOT EXISTS ${FLEX_EXECUTABLE})

IF (DEFINED FLEXLEXER_H_DIR)
  include_directories(${FLEXLEXER_H_DIR})
  message("Looking in ${CMAKE_REQUIRED_INCLUDES} for FlexLexer.h")
ELSE()

CHECK_INCLUDE_FILE_CXX("FlexLexer.h" HAVE_FLEXLEXER_H)
IF(NOT HAVE_FLEXLEXER_H)
  UNSET(HAVE_FLEXLER_H CACHE)
  message( FATAL_ERROR "Cannot find FlexLexer.h.  Set FLEXLEXER_H_DIR to point to where it is to be found.." )
ENDIF()

我得到的按摩是:

Could not find bison executable.
Could not find flex executable.
-- Looking for C++ include FlexLexer.h
-- Looking for C++ include FlexLexer.h - not found
CMake Error at VALfiles/parsing/CMakeLists.txt:28 (message):
  Cannot find FlexLexer.h.  Set FLEXLEXER_H_DIR to point to where it is to be
  found..

-- Configuring incomplete, errors occurred!

【问题讨论】:

  • “构建失败”的描述过于模糊。请显示(添加到问题帖子中)确切您收到的错误消息。
  • 第二个问题是确保您的%PATH% 包含这些二进制文件。第一个可以通过设置CMAKE_REQUIRED_INCLUDES来解决
  • 我添加了 C:\GnuWin32\win_flex_bison-latest,这是 win_bison.exe 和 win_flex.exe 到 %path% 的位置。还是不行。

标签: c++ cmake flexbox bison clion


【解决方案1】:

您应该使用以下命令在 CMake 中查找 FLEX 和 BISON:

find_package(FLEX REQUIRED)
find_package(BISON REQUIRED)

有关FLEXBISON 的更多信息将为您提供您需要知道的一切。

【讨论】:

  • 尝试并获得按摩:-找不到 BISON(缺少:BISON_EXECUTABLE)-找不到 FLEX(缺少:FLEX_EXECUTABLE)。我如何告诉 CMake 在哪里寻找包? (我把它放在'C:\GnuWin32\win_flex_bison-latest')
  • 您可以将 FLEX_ROOT 或 BISON_ROOT 设置为这些文件夹。否则,CMake 中应该有可以设置为这些文件夹的变量。这是您的第一个基于 CMake 的项目还是您第一次使用 CMake?你在使用 GUI 工具吗?
  • 是的,这是我第一次使用 CMake。实际上,这是我一段时间以来的第一个 c++ 项目(通常使用 python)。我没有使用 GUI 工具,我尝试使用 git 项目中存在的 CMakeLists.txt 进行构建。
  • 尝试使用来自 CMake 的 GUI 工具,它在这些事情上非常有帮助。它还允许您以交互方式设置路径。
猜你喜欢
  • 2018-03-26
  • 1970-01-01
  • 2013-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-10
  • 2016-06-19
  • 1970-01-01
相关资源
最近更新 更多