【发布时间】: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