4
我在我的项目中有两个cmake文件的子目录结构。其中之一应该是一个编译器,使用Flex和野牛,但CMake的给我一个错误,我不很明白:Flex /野牛目标不存在
cmake_minimum_required(VERSION 2.8)
project(leaf)
add_subdirectory(leafc)
,并在目录leafc
:
find_package(BISON)
find_package(FLEX)
BISON_TARGET(LeafParser ${CMAKE_CURRENT_SOURCE_DIR}/parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp)
FLEX_TARGET(LeafScanner ${CMAKE_CURRENT_SOURCE_DIR}/lexer.l ${CMAKE_CURRENT_BIANRY_DIR}/lexer.cpp)
ADD_FLEX_BISON_DEPENDENCY(LeafParser LeafScanner)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_executable(leafc main.cpp ${BISON_LeafParser_OUTPUTS} ${FLEX_LeafScanner_OUTPUTS})
,但我得到这个试图cmake .
CMake Error at /usr/share/cmake-2.8/Modules/FindFLEX.cmake:132 (MESSAGE):
Flex target `LeafParser' does not exists.
Call Stack (most recent call first):
leafc/CMakeLists.txt:6 (ADD_FLEX_BISON_DEPENDENCY)
CMake Error at /usr/share/cmake-2.8/Modules/FindFLEX.cmake:136 (MESSAGE):
Bison target `LeafScanner' does not exists.
Call Stack (most recent call first):
leafc/CMakeLists.txt:6 (ADD_FLEX_BISON_DEPENDENCY)
CMake Error at /usr/share/cmake-2.8/Modules/FindFLEX.cmake:139 (SET_SOURCE_FILES_PROPERTIES):
set_source_files_properties called with incorrect number of arguments.
Call Stack (most recent call first):
leafc/CMakeLists.txt:6 (ADD_FLEX_BISON_DEPENDENCY)
-- Configuring incomplete, errors occurred!
当错误文件有:
├── CMakeLists.txt
├── leafc
│ ├── CMakeLists.txt
│ ├── lexer.l
│ ├── main.cpp
│ └── parser.y
└── README
那么我做错了什么?
谢谢,虽然我现在从'make'中得到了错误:'make [2]:***没有规则使目标'parser.hpp',由'leafc/CMakeFiles/leafc.dir/lexer.cpp的.o”。 Stop.'任何想法? – Lanbo
可能是由错字造成的。查看更新的答案。 – sakra