首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bison & Flex cmake配置

Bison & Flex cmake配置
EN

Stack Overflow用户
提问于 2016-01-24 20:03:17
回答 1查看 1.6K关注 0票数 0

我有Makefile文件来管理我的bison&flex&c++项目的构建:

代码语言:javascript
复制
CFLAGS = -g
all:      cppcalc
cppcalc:    cppcalc.lex.o cppcalc.tab.o
    c++ -g -o $@ cppcalc.tab.o cppcalc.lex.o -lm
cppcalc.lex.o: cppcalc.lex.c cppcalc.tab.hh cppcalc-ctx.hh
    c++ -c $<
cppcalc.tab.o: cppcalc.tab.cc cppcalc-ctx.hh klasa.hh
cppcalc.lex.c: cppcalc.l
    flex -ocppcalc.lex.c cppcalc.l
cppcalc.tab.cc cppcalc.tab.hh: cppcalc.yy
    bison -vd cppcalc.yy

这个很好用。我想把这个想法转换成cmake。现在我在下面写了一些类似的东西,但是我在输入make之后会出错,我不知道哪里出了问题:

代码语言:javascript
复制
cmake_minimum_required(VERSION 2.8)

find_package(BISON)
find_package(FLEX)

BISON_TARGET(MyParser cppcalc.yy ${CMAKE_CURRENT_BINARY_DIR}/cppcalc.tab.cc COMPILE_FLAGS -vd)
FLEX_TARGET(MyScanner cppcalc.l  ${CMAKE_CURRENT_BINARY_DIR}/cppcalc.lex.c)
ADD_FLEX_BISON_DEPENDENCY(MyScanner MyParser)

 include_directories(${CMAKE_CURRENT_BINARY_DIR})
 add_executable(Foo
    ${BISON_MyParser_OUTPUTS}
    ${FLEX_MyScanner_OUTPUTS}
    cppcalc-ctx.hh
    klasa.hh
 )

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-23 12:25:57

代码语言:javascript
复制
cmake_minimum_required(VERSION 2.8)

find_package(BISON 2.4.1)
find_package(FLEX 2.5.35)

BISON_TARGET(MyParser cppcalc.yy ${CMAKE_CURRENT_BINARY_DIR}/cppcalc.tab.cpp)
FLEX_TARGET(MyScanner cppcalc.l  ${CMAKE_CURRENT_BINARY_DIR}/lexer.cpp)
ADD_FLEX_BISON_DEPENDENCY(MyScanner MyParser)

include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
add_executable(Calc
  ${BISON_MyParser_OUTPUTS}
  ${FLEX_MyScanner_OUTPUTS}
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34980788

复制
相关文章

相似问题

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