我的项目中有一个子目录结构,其中有两个 cmake 文件。其中之一应该是一个编译器,使用flex和bison,但是cmake给了我一个我不太明白的错误:
\n\ncmake_minimum_required(VERSION 2.8)\n\nproject(leaf)\n\nadd_subdirectory(leafc)\nRun Code Online (Sandbox Code Playgroud)\n\n并在目录中leafc:
find_package(BISON)\nfind_package(FLEX)\n\nBISON_TARGET(LeafParser ${CMAKE_CURRENT_SOURCE_DIR}/parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp)\nFLEX_TARGET(LeafScanner ${CMAKE_CURRENT_SOURCE_DIR}/lexer.l ${CMAKE_CURRENT_BIANRY_DIR}/lexer.cpp)\nADD_FLEX_BISON_DEPENDENCY(LeafParser LeafScanner)\n\ninclude_directories(${CMAKE_CURRENT_BINARY_DIR})\nadd_executable(leafc main.cpp ${BISON_LeafParser_OUTPUTS} ${FLEX_LeafScanner_OUTPUTS})\nRun Code Online (Sandbox Code Playgroud)\n\n但我在尝试时收到此错误cmake .
CMake Error at /usr/share/cmake-2.8/Modules/FindFLEX.cmake:132 (MESSAGE):\n Flex target `LeafParser' does not exists.\nCall Stack (most recent call first):\n leafc/CMakeLists.txt:6 (ADD_FLEX_BISON_DEPENDENCY)\n\nCMake Error at /usr/share/cmake-2.8/Modules/FindFLEX.cmake:136 (MESSAGE):\n Bison target `LeafScanner' does not exists.\nCall Stack (most recent call first):\n leafc/CMakeLists.txt:6 (ADD_FLEX_BISON_DEPENDENCY)\n\nCMake Error at /usr/share/cmake-2.8/Modules/FindFLEX.cmake:139 (SET_SOURCE_FILES_PROPERTIES):\n set_source_files_properties called with incorrect number of arguments.\nCall Stack (most recent call first):\n leafc/CMakeLists.txt:6 (ADD_FLEX_BISON_DEPENDENCY)\n\n-- Configuring incomplete, errors occurred!\nRun Code Online (Sandbox Code Playgroud)\n\n文件在那里:
\n\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 CMakeLists.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 leafc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 CMakeLists.txt\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lexer.l\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.cpp\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 parser.y\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 README\nRun Code Online (Sandbox Code Playgroud)\n\n那么我做错了什么?
\n看来你只是把论点搞混ADD_FLEX_BISON_DEPENDENCY了。尝试:
ADD_FLEX_BISON_DEPENDENCY(LeafScanner LeafParser)
Run Code Online (Sandbox Code Playgroud)
此外,您的通话中存在拼写错误FLEX_TARGET(CMAKE_CURRENT_BIANRY_DIR )。
| 归档时间: |
|
| 查看次数: |
4244 次 |
| 最近记录: |