2017-10-25 10 views
1

작은 게임을 코딩 중이며 CLION IDE가있는 그래픽에 SDL 라이브러리를 사용하고 있습니다. 이미 SDL2, SDL2_image 및 SDL2_ttf를 다운로드했습니다. 나는 메이크 연결이 라이브러리 다음 한 또한CLIon - SDL_TTF를 사용하는 정의되지 않은 참조

#include <SDL2/SDL.h> 
#include <SDL2/SDL_ttf.h> 

bool foo() { 

    if(SDL_Init(SDL_INIT_EVERYTHING)) { 
     return false; 
    } 

    if (TTF_Init() == -1){ 
     cerr << "Error ." << endl; 
    } 

    TTF_Font* font = TTF_OpenFont("Sans.ttf", 20); 
    SDL_Color color = {100, 0, 0}; 
    SDL_Surface* text; 

    ... 

: 코드에서 나는 세 가지 라이브러리를 포함하고 텍스트를 만들기 위해 TTF를 사용

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread") 

set(CLIENT_FILES core/client.h core/client.cpp) 
set(CONFIGURATION_FILES configuration/configurationClient.cpp configuration/configurationClient.h) 
file(GLOB_RECURSE GAME_FILES "game/*.cpp" "game/*.h") 
file(GLOB_RECURSE MENU_FILES "menu/*.cpp" "menu/*.h") 

add_executable(client main.cpp ${CLIENT_FILES} ${MENU_FILES} ${CONFIGURATION_FILES} ${GAME_FILES}) 

include(FindPkgConfig) 

PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2) 
PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image>=2.0.0) 
PKG_SEARCH_MODULE(SDL2TTF REQUIRED SDL2_ttf>=2.0.0) 

include_directories(${SDL2_INCLUDE_DIRS} ${SDL2IMAGE_INCLUDE_DIRS} ${SDL2TTF_INCLUDE_DIRS}) 

target_link_libraries(client common SDLPrimitives ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARIES} ${SDL2TTF_LIBRARIES}) 

내 문제는 IDE 인식이다 SDL_ttf 라이브러리 (TTF 함수의 오류로 빨간색으로 표시되지 않음)이지만 코드를 컴파일하려고하면 많은 정의되지 않은 참조가 있습니다.

CMakeFiles/client.dir/menu/menuClientVisual.cpp.o: In function `foo()': 
source/client/menu/foo.cpp:137: undefined reference to `TTF_Init' 
source/client/menu/foo.cpp:141: undefined reference to `TTF_OpenFont' 
source/client/menu/foo.cpp:145: undefined reference to `TTF_RenderText_Solid' 
source/client/menu/foo.cpp:152: undefined reference to `TTF_RenderText_Solid' 
source/client/menu/foo.cpp:157: undefined reference to `TTF_SetFontStyle' 
source/client/menu/foo.cpp:160: undefined reference to `TTF_RenderText_Solid' 

어떤 생각? 포함

+1

. 생성 된 Makefile을보고 TTF 라이브러리를 링크하려고 시도하는지 여부와 올바른 경로로 설정되었는지 확인하십시오. – silent

답변

0

시도 : 그것은 TTF 라이브러리에 연결되지

find_library(SDL2TTF_LIBRARIES SDL_ttf) 
+0

저는 같은 오류가 발생했습니다. 나는 find_library와 PKG_SEARCH_MODULO가 거의 동일하다고 생각한다. 그렇지 않습니까? – LaCumbancha