gpt4 book ai didi

使用无效参数调用 cmake target_include_directories

转载 作者:行者123 更新时间:2023-12-04 22:55:23 25 4
gpt4 key购买 nike

我对 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

我不知道这是什么意思。请帮我

最佳答案

如果您查看 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})
如果您的可执行文件在公共(public)头文件中使用 OpenGL 头文件,请将其指定为公共(public)的,以便链接到它的其他目标也包含 OpenGL 头文件。
我建议您习惯阅读文档,因为它将是您编写 CMake 脚本的最佳工具。
即使它是可选的,也可以采用 target_link_libraries 的这种形式,我强烈建议你这样做:
target_link_libraries(untitled PUBLIC ${OPENGL_gl_LIBRARY})

关于使用无效参数调用 cmake target_include_directories,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49538580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com