2017-06-27 164 views
0

我使用sdl2 lib來製作一個簡單的遊戲。成功測試sdl窗口和鍵盤處理。問題是我不能使用TTF把一些文字窗口,TTF_Init沒有找到(未定義參考TTF_Init()未定義的引用TTF_Init

CMake的文件:

cmake_minimum_required(VERSION 3.6) 
project(untitled17) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lmingw32") 
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++") 


include_directories(${PROJECT_SOURCE_DIR}/include) 
link_directories(${PROJECT_SOURCE_DIR}/lib) 

set(SOURCE_FILES main.cpp) 
add_executable(untitled17 ${SOURCE_FILES}) 

target_link_libraries(untitled17 mingw32 SDL2main SDL2) 

的main.cpp

#include "include/SDL2/SDL.h" 
#include "include/SDL2/SDL_ttf.h" 

using namespace std; 

int main(int argc, char* argv []) { 

SDL_Init(SDL_INIT_EVERYTHING); 
    TTF_Init(); 
    TTF_Quit(); 


    return 0; 
} 

CLion build輸出:

[ 50%] Building CXX object CMakeFiles/untitled17.dir/main.cpp.obj 
[100%] Linking CXX executable untitled17.exe 
CMakeFiles\untitled17.dir/objects.a(main.cpp.obj): In function `SDL_main': 
C:/Users/1/ClionProjects/untitled17/main.cpp:14: undefined reference to `TTF_Init' 
C:/Users/1/ClionProjects/untitled17/main.cpp:15: undefined reference to `TTF_Quit' 
collect2.exe: error: ld returned 1 exit status 
mingw32-make.exe[3]: *** [untitled17.exe] Error 1 
CMakeFiles\untitled17.dir\build.make:96: recipe for target 'untitled17.exe' failed 
mingw32-make.exe[2]: *** [CMakeFiles/untitled17.dir/all] Error 2 
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/untitled17.dir/all' failed 
CMakeFiles\Makefile2:78: recipe for target 'CMakeFiles/untitled17.dir/rule' failed 
mingw32-make.exe[1]: *** [CMakeFiles/untitled17.dir/rule] Error 2 
Makefile:117: recipe for target 'untitled17' failed 
mingw32-make.exe: *** [untitled17] Error 2 

回答

1

您需要鏈接到SDL_ttf librar年。 (需要添加到target_link_libraries)

target_link_libraries(untitled17 mingw32 SDL2main SDL2 SDL_ttf)