首页 > 解决方案 > Cmake 找不到包含 /libaries (SDL2, GLEW,...)

问题描述

我想在我的 Cmake 项目中包含 SDL2 和 GLEW

scr 文件位于 C:\libs\src 中,我使用 PATH CMAKE_Install_PRÄFIX 在 CMAKE 中创建了所有库,如本文档中所示:

  1. 下载并安装 CMake ( https://cmake.org/ ) 和 Visual Studio 社区版 ( https://visualstudio.microsoft.com/de/ )
  2. 创建一个目录(任何适合您的),您可以在其中安装所有库。将其置于较低级别是合理的,因为将来您可能希望添加更多库并将此文件夹也用于其他项目。以下解释假设您使用C:/libs。如果您想使用另一个目录,只需按照您需要的方式调整目录即可。
  3. C:/libsC:/libs/bin添加到环境变量路径( https://www.computerhope.com/issues/ch000549.htm )。
  4. 创建一个子目录libs/src,将cgAdvancedFramework/deps/中的所有库复制到此文件夹并解压缩它们。
  5. SDL2:
    • 打开 cmake-gui
      • 源代码:C:/libs/src/SDL2-2.0.12
      • 二进制文件:C:/libs/src/SDL2-2.0.12/build
      • 添加条目
        • 名称:CMAKE_INSTALL_PREFIX
        • 类型:路径
        • 值:C:\libs
        • 好的
      • 配置
        • 接受创建构建目录
        • 使用默认的本机编译器 --> 完成
      • 产生
      • 打开项目(这应该启动 Visual Studio)
    • 视觉工作室
      • 解决方案配置:调试
      • 右键ALL_BUILD --> Build(如果出现错误,这里可能你之前做错了)
      • 右键单击安装 --> 构建(如果出现错误,...)
      • 对解决方案配置执行相同操作:RelWithDebInfo(可选但推荐)

我的项目位于 C:\Users\Documents...\dvs\volren

并且构建目录位于 C:\Users\Documents...\dvs\build 和

C:\libs\include\GL

C:\libs\include\SDL2 ...

主.cpp:

#include <iostream>
#pragma once
#define NOMINMAX
#include <SDL2.h>   //dont find
#include <GL/glew.h> //dont find
#include <vtk3DS.h> // find

CMakelist.txt:

cmake_minimum_required(VERSION 2.8)

PROJECT(volren)

find_package(VTK REQUIRED)
include(${VTK_USE_FILE})

find_package(GLEW REQUIRED)
include_directories(${GLEW_INCLUDE_DIRS})

find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIRS})

add_executable(volren MACOSX_BUNDLE main.cpp Camera.hpp Math.hpp Image.hpp)

target_link_libraries(volren ${VTK_LIBRARIES} ${GLEW_LIBRARIES} ${VTK_LIBRARIES}) 

错误:无法打开源文件 GL/glew.h

我的错误在哪里?

标签: c++cmakevtkglew

解决方案


看来您在 Windows 上,为什么要添加MACOSX_BUNDLE您的add_executable?

GLEW_INCLUDE_DIRS另外,您确定SDL2_INCLUDE_DIRS要使用正确的变量吗?你检查他们是否有人居住吗?


推荐阅读