4
두 개의 cmake 파일을 가지고있는 프로젝트에 서브 디렉토리 구조가 있습니다. 그 중 하나는 flex와 들소를 사용하여 컴파일해야하지만, cmake 내가 확실히 이해하지 못하는 나에게 오류를 제공합니다플렉스/들소 타겟이 존재하지 않습니다.
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 .영형'. 그만. 어떤 생각? – Lanbo
아마도 오타가 원인 일 수 있습니다. 업데이트 된 답변보기 – sakra