首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试向已经有自定义规则的输出中添加自定义规则。

尝试向已经有自定义规则的输出中添加自定义规则。
EN

Stack Overflow用户
提问于 2022-03-18 12:46:26
回答 1查看 237关注 0票数 0

我使用cmake编译了一个使用flex & bison的库,并且我有以下错误:

代码语言:javascript
复制
CMake Error at /usr/share/cmake/Modules/FindBISON.cmake:279 (add_custom_command):
  Attempt to add a custom rule to output

  PATH/automaton.c.rule

  which already has a custom rule.

下面是我的CMakeLists编译它的内容。

代码语言:javascript
复制
FIND_PACKAGE(BISON REQUIRED)
FIND_PACKAGE(FLEX REQUIRED)

flex_target(lexer automaton_lexer.l ${CMAKE_CURRENT_BINARY_DIR}/automaton.c)
bison_target(parser automaton_parser.y ${CMAKE_CURRENT_BINARY_DIR}/automaton.c)
add_flex_bison_dependency(lexer parser)

add_library(automaton automaton.c queue.c tikz_handler.c ${FLEX_lexer_OUTPUTS} ${BISON_parser_OUTPUTS})
target_link_libraries(automaton ${FLEX_LIBRARIES})
target_include_directories(automaton PUBLIC headers)

我相信,我跟踪了文档,但我不知道为什么会失败。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-18 13:15:30

您需要为flex和bison目标指定不同的输出文件。

代码语言:javascript
复制
flex_target(lexer automaton_lexer.l ${CMAKE_CURRENT_BINARY_DIR}/lexer.c)
bison_target(parser automaton_parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.c)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71527229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档