gpt4 book ai didi

在 CLion 中使用 flex/bison 进行 CMake

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:48 27 4
gpt4 key购买 nike

我正在尝试将 Makefile 转换为 CMakeLists.txt。

有效的生成文件

fb1-5:  fb1-5.l fb1-5.y
bison -d fb1-5.y
flex fb1-5.l
cc -o $@ fb1-5.tab.c lex.yy.c -lfl

CMakeLists.txt 尝试

cmake_minimum_required(VERSION 3.7)
project(calc)

set(CMAKE_C_STANDARD 99)

FIND_PACKAGE(BISON REQUIRED)
SET(BisonOutput ${CMAKE_SOURCE_DIR}/parser.c)
IF(BISON_FOUND)
ADD_CUSTOM_COMMAND(
OUTPUT ${BisonOutput}
COMMAND ${BISON_EXECUTABLE}
-d
${CMAKE_SOURCE_DIR}/fb1-5.y
COMMENT "Generating parser.c"
)
ENDIF()

FIND_PACKAGE(FLEX REQUIRED)
SET(FlexOutput ${CMAKE_SOURCE_DIR}/scanner.c)
IF(FLEX_FOUND)
ADD_CUSTOM_COMMAND(
OUTPUT ${FlexOutput}
COMMAND ${FLEX_EXECUTABLE}
${CMAKE_SOURCE_DIR}/fb1-5.l
COMMENT "Generating fb1-5.l"
)
ENDIF()

ADD_LIBRARY(calc ${BisonOutput} ${FlexOutput})

它说它在 中找到了 bison 和 flex

-- Found BISON: /usr/bin/bison (found version "3.0.4") 
-- Found FLEX: /usr/bin/flex (found version "2.6.0")

但是我的 CMake 脚本不会生成可执行文件。我应该如何定义“可执行文件”以及如何使 CMake 构建脚本在 CLion 中运行?

最佳答案

But my CMake script won't generate an executable. How should I define "executable" and how can I make the CMake build script work in CLion?

我认为你至少应该做这样的事情:

add_executable(fb1-5
${BisonOutput}
${FlexOutput}
)

参见 add_executable .

关于在 CLion 中使用 flex/bison 进行 CMake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44866852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com