Как добавить файл .h к гибкому определению в CMake - PullRequest
0 голосов
/ 12 февраля 2020

Поэтому я пытаюсь использовать flex в проекте с Clion (потому что я на windows), который использует CMake, но я не могу скомпилировать, потому что мой файл lexer.l включает token.h, мой CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)

find_package(FLEX)

FLEX_TARGET(MyScanner lexer.l ${CMAKE_CURRENT_BINARY_DIR}/lex.yy.c)

include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_executable(lexer token.h ${FLEX_MyScanner_OUTPUTS}
         printtoken.c lexan.h lexanl.c )

ОШИБКА:

[ 16%] Building C object CMakeFiles/lexer.dir/lex.yy.c.o
lexan.l:36:10: fatal error: token.h: No such file or directory
compilation terminated.
CMakeFiles/lexer.dir/build.make:74: recipe for target 'CMakeFiles/lexer.dir/lex.yy.c.o' failed

Как включить токен.h?

1 Ответ

1 голос
/ 14 февраля 2020

Проблема решена:

Мне пришлось добавить ${CMAKE_SOURCE_DIR} к вызову include_directories(), чтобы он нашел файл заголовка.

...