簡體   English   中英

在OS X上將SDL2與CLion一起使用

[英]Using SDL2 with CLion on OS X

因此,我正在嘗試使SDL2與CLion一起使用(以便我可以進行實驗/學習)。

我的主要代碼是這樣的:

#include <iostream>
#include <SDL.h>

const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

bool init();

SDL_Window* gWindow = NULL;

SDL_Surface* gScreenSurface = NULL;

SDL_Surface* gHelloWorld = NULL;

bool init(){
    bool success = true;
    /*if(SDL_Init(SDL_INIT_VIDEO)<0){
        success = false;
    }
    else{
    }*/

    return success;
}

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

我的CMake文件看起來像這樣

cmake_minimum_required(VERSION 3.6)
project(SDL2_Lesson_1)

set(CMAKE_CXX_STANDARD 11)

# includes cmake/FindSDL2.cmake
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

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

set(SOURCE_FILES Lesson_1.cpp)

add_executable(SDL2_App ${SOURCE_FILES})
target_link_libraries(SDL2_App ${SDL2_LIBRARY})

set(SOURCE_FILES Lesson_1.cpp)
add_executable(SDL2_Lesson_1 ${SOURCE_FILES})

另外,我有一個文件FindSDL2.cmake從這里在項目文件夾中的文件夾cmake的。 現在,使用我發布的文件,所有文件均可編譯並運行良好。 但是,當我取消注釋init()中的注釋部分時,編譯失敗,並給我以下錯誤:

Undefined symbols for architecture x86_64:
  "_SDL_Init", referenced from:
      init() in Lesson_1.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [SDL2_Lesson_1] Error 1
make[2]: *** [CMakeFiles/SDL2_Lesson_1.dir/all] Error 2
make[1]: *** [CMakeFiles/SDL2_Lesson_1.dir/rule] Error 2
make: *** [SDL2_Lesson_1] Error 2

注意:Lesson_1.cpp是包含主要代碼的文件。 同樣,這只是錯誤的一部分。

使用find_library()而不是find_package()

find_library(SDL2_LIBRARY SDL2 "path/to/your/library_bundle")
find_library(SDL2_App ${SDL2_LIBRARY})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM