FLEX/BISON在不同的文件夹中生成location.hh,position.hh,stack.hh
FLEX/BISON generate location.hh, position.hh, stack.hh in different folder
>我有这样的文件夹结构
include/
src/
| parser.yy
| scanner.ll
在src/CMakeLists.txt
:
SET(BisonOutput ${CMAKE_SOURCE_DIR}/src/_parser.cpp)
IF(BISON_FOUND)
ADD_CUSTOM_COMMAND(
OUTPUT ${BisonOutput}
COMMAND ${BISON_EXECUTABLE}
--defines=${CMAKE_SOURCE_DIR}/include/_parser.hpp
--output=${BisonOutput}
${CMAKE_SOURCE_DIR}/src/parser.yy
COMMENT "Generating parser"
)
ENDIF()
SET(FlexOutput ${CMAKE_SOURCE_DIR}/src/_scanner.cpp)
IF(FLEX_FOUND)
ADD_CUSTOM_COMMAND(
OUTPUT ${FlexOutput}
COMMAND ${FLEX_EXECUTABLE}
--outfile=${FlexOutput}
${CMAKE_SOURCE_DIR}/src/scanner.ll
COMMENT "Generating scanner"
)
ENDIF()
但是,文件位置.hh,position.hh和stack.hh是在src
目录中生成的。是否可以以某种方式指定我希望在include
目录中生成这些文件?
我正在使用野牛 3.0.4 和 Flex 2.6.4
我不确定Bison/Flex是否允许您在单独的位置生成它们,但是一旦生成它们,您就可以使用CMake将它们复制到include
目录中。添加另一个带有PRE_BUILD
的add_custom_command
调用,以确保在构建目标之前复制它们:
ADD_CUSTOM_COMMAND(
TARGET MyTarget PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/src/locations.hh ${CMAKE_SOURCE_DIR}/include
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/src/position.hh ${CMAKE_SOURCE_DIR}/include
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/src/stack.hh ${CMAKE_SOURCE_DIR}/include
)
相关文章:
- 如何在C++中将 chrono::秒转换为 HH:MM:SS 格式的字符串?
- 如何从远程 SFTP 服务器获取 HH-MM-SS 时间戳格式的文件列表
- 将 hh:mm:ss.zzz 时间 QString 转换为毫秒的单行函数?
- 将数组信息存储到 c++ 向量中有一个"Access violation reading location"
- 格式化时间 c++ dd/mm/yyyy hh:ss.
- 如何在C++中将秒更改为 HH:MM:SS 格式?
- 在"printf"中使用标签"h"或"hh"是否涉及未定义的
- 例外:'Access violation reading location'
- 我在发布模式下运行时收到"Access violation reading location"错误 - C++
- 我在 C++ "out_of_range at memory location"有问题
- 链接器错误:"cannot move location counter backwards (from 200009f8 to 20000800)"
- Gecode,使用 gecode.int.hh 编译程序时出错
- FLEX/BISON在不同的文件夹中生成location.hh,position.hh,stack.hh
- 如何修复我的 c++ 毕达哥拉斯三重查找器中的'access violation reading location'错误?
- 矩阵 - "Access violation writing location 0x00900B0C" - C++ 中的错误
- 如何以"hh:mm:ss"格式读取C ++中的HH,MM和SS
- Memcpy to mallocd location
- 从用户那里获取"yyyy/mm/dd, hh:mm"形式的日期输入并验证C++中的日期?
- 在 C++11 中表示日内时间 HH:MM:SS 的最佳方法是什么?
- 将Bison的stack.hh,position.hh和location.hh放在不同文件夹中的干净方法