首页 > 解决方案 > 在 Ubuntu 中使用 CLION 未定义对 SDL2 函数的引用

问题描述

这是我在stackoverflow上的第一篇文章,所以请理解:)

我在 C 项目中的 Ubutun 上使用 CLion,在我开始使用 SDL2 之前一切正常……我遇到错误:未定义对 « SDL_CreateWindow » 的引用以及我想使用的所有 SDL2 函数。我读了很多相同的错误,但在 Windows 和 Ubuntu 上,没有人...

我是 Makefiles 和 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, SDL_WINDOWPOS_CENTERED, 800, 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)

标签: cubuntusdl-2clion

解决方案


也许,我在这篇文章 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,所以目前它似乎有效


推荐阅读