我正在尝试使用 CLion 创建一个 SDL2 项目。问题是使用#include 时找不到SDL 标头。
我的 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 2.8.4)
project(ChickenShooter)
set(SDL2_INCLUDE_DIR C:/SDL/SDL2-2.0.3/include)
set(SDL2_LIBRARY C:/SDL/SDL2-2.0.3/lib/x64)
include_directories(${SDL2_INCLUDE_DIR})
set(SOURCE_FILES main.cpp)
add_executable(ChickenShooter ${SOURCE_FILES})
target_link_libraries(ChickenShooter ${SDL2_LIBRARY})
我的测试 main.cpp:
#include <iostream>
#include "SDL.h" /* This one can't be found */
int main(){
if (SDL_Init(SDL_INIT_VIDEO) != 0){
std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
return 1;
}
SDL_Quit();
return 0;
}
谢谢你能给我的任何帮助。
编辑:我使用的是 Windows,CLion 配置为使用 cygwin64。
原文由 Ovenkoek 发布,翻译遵循 CC BY-SA 4.0 许可协议
不要手动设置 SDL2 的路径。使用使用 FindSDL 的正确 find 命令。应该看起来像:
如果找不到 SDL2,则必须将 SDL2 的路径添加到
CMAKE_PREFIX_PATH
,这是 CMake 查找已安装软件的地方。如果您可以使用 Pkg-config,它的使用可能会更容易,请参阅 How to use SDL2 and SDL_image with cmake
如果您觉得使用 CMake 提供的类似于 FindSDL.cmake 的 FindSDL2.cmake 文件更舒服,请参阅 https://brendanwhitfield.wordpress.com/2015/02/26/using-cmake-with-sdl2/