Справочная информация
Как видно из названия, я нахожусь на Ubuntu 16.04 с использованием CLion и G ++ и не могу связать SDL2.
SDL2.h находится в проекте на External Libraries/Header Search Paths/include/SDL2
. Это похоже на ссылку /usr/include/SDL2
.
Итак, с найденным заголовочным файлом я могу #include <SDL2/SDL.h>
без проблем. Тем не менее, когда я пытаюсь использовать SDL2 с чем-то вроде SDL_Init( SDL_INIT_EVERYTHING )
, я получаю undefined reference
.
Если я компилирую из терминала с g++ main.cpp -lSDL2 -o test
, у меня нет ошибок. Но если я скомпилирую из терминала с g++ main.cpp -o test
, то у меня будет та же ошибка, что и у CLion!
Вопрос
Как связать SDL2 с Cmake? Правильно ли я добавил этот флаг -lsdl2
в файл CMake? Если я правильно его добавил, то чего мне не хватает?
main.cpp
#include <iostream>
#include <SDL2/SDL.h>
int main(int argc, char* argv[]) {
SDL_Init( SDL_INIT_EVERYTHING );
std::cout << "Hello, World!" << std::endl;
SDL_Quit();
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.12)
project(untitled2)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lSDL2")
add_executable(untitled2 main.cpp)