在Ubuntu中使用CLION对SDL2函数的未定义引用

问题描述

这是我关于stackoverflow的第一篇文章,请谅解:)

我在C项目中的Ubutun上使用CLion,直到我开始使用SDL2为止,一切正常。 我有错误:未定义对《 SDL_CreateWindow》和我要使用的所有SDL2函数的引用。 我读到很多相同的错误,但是在Windows和Ubuntu上,没有人...

我是Makefile和C语言的初学者

那是我的代码: main.c

#include "main.h"
#include "sdl_functions.h"
    
int main() {
    int (*pieces) [10][10] = NULL;
    return 0;
}

sdl_functions.c

#include <SDL2/SDL.h>
#include "sdl_functions.h"
    
void displayPiece(){
    
        SDL_Window* window;
        SDL_Renderer* renderer;    
        
        window=SDL_CreateWindow("TEStwindOW",SDL_WINDOWPOS_CENTERED,800,0);//error undefined reference to SDL_CreateWindow
}

那是我的CMakeLists.txt

cmake_minimum_required(VERSION 3.17)
project(project_name C)

set(CMAKE_C_STANDARD 99)
SET(CMAKE_CXX_LINK_FLAGS "-lSDL2")
add_executable(project_name main.c main.h sdl_functions.c sdl_functions.h)

解决方法

也许,我在这篇文章中找到了解决方案 Linking SDL2 - CLion - Ubuntu 16.04 - G++

您必须打开CMakeLists.txt

并像这样修改该文件:

cmake_minimum_required(VERSION 3.17)
project(project_name C)

set(CMAKE_C_STANDARD 99)
find_package(SDL2 REQUIRED SDL2)
SET(CMAKE_CXX_LINK_FLAGS "-lSDL2")
add_executable(project_name main.c main.h sdl_functions.c sdl_functions.h)
target_link_libraries(project_name PRIVATE SDL2)

现在我的退出代码为0,因此目前看来可以正常使用