我是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})
Run Code Online (Sandbox Code Playgroud)
我得到以下错误: -
CMakeLists.txt:8: error: target_include_directories called with invalid arguments
Run Code Online (Sandbox Code Playgroud)
我不知道这是什么意思.请帮我
如果你查看CMake文档,你会发现它的用法与你写的有些不同:
Run Code Online (Sandbox Code Playgroud)target_include_directories(<target> [SYSTEM] [BEFORE] <INTERFACE|PUBLIC|PRIVATE> [items1...] [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])
您会注意到您错过了非可选参数 <INTERFACE|PUBLIC|PRIVATE>
您必须指定include目录的可见性:
target_include_directories(untitled PRIVATE ${OPENGL_INCLUDE_DIR})
Run Code Online (Sandbox Code Playgroud)
如果您的可执行文件在公共头文件中使用OpenGL标头,请将其指定为public,以便链接到它的其他目标也包含OpenGL标头.
我建议你习惯阅读文档,因为它将是你编写CMake脚本的最佳工具.
| 归档时间: |
|
| 查看次数: |
4234 次 |
| 最近记录: |