#cmake
Вопрос:
Я очень новичок в cmake . Я раньше использовал файлы makefile, но из-за QtCreator я вынужден использовать cmake. Я тоже пытаюсь выучить glfw. У меня есть следующий файл cmake:-
cmake_minimum_required(VERSION 3.10)
project(untitled)
find_package(glfw3 3.2 REQUIRED)
find_package(OpenGL REQUIRED)
add_executable(${PROJECT_NAME} "main.cpp")
target_include_directories(untitled ${OPENGL_INCLUDE_DIR})
target_link_libraries(untitled ${OPENGL_gl_LIBRARY})
И я получаю следующую ошибку:-
CMakeLists.txt:8: error: target_include_directories called with invalid arguments
Я понятия не имею, что это значит. Пожалуйста, помогите мне
Ответ №1:
Если вы посмотрите документацию CMake, вы увидите, что ее использование немного отличается от того, что вы написали:
target_include_directories(<target> [SYSTEM] [BEFORE] <INTERFACE|PUBLIC|PRIVATE> [items1...] [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])
Вы заметите, что пропустили необязательный аргумент <INTERFACE|PUBLIC|PRIVATE>
Необходимо указать видимость каталога включения:
target_include_directories(untitled PRIVATE ${OPENGL_INCLUDE_DIR})
Если ваш исполняемый файл использует заголовки OpenGL в общедоступном файле заголовка, укажите его как общедоступный, чтобы другие целевые объекты, которые ссылаются на него, также включали заголовки OpenGL.
Я предлагаю вам привыкнуть читать документацию, так как это будет ваш лучший инструмент для написания сценариев CMake.
Даже если это необязательно, вы также можете заполнить эту форму target_link_libraries
, что я настоятельно рекомендую вам сделать:
target_link_libraries(untitled PUBLIC ${OPENGL_gl_LIBRARY})