작은 게임을 코딩 중이며 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'
어떤 생각? 포함
. 생성 된 Makefile을보고 TTF 라이브러리를 링크하려고 시도하는지 여부와 올바른 경로로 설정되었는지 확인하십시오. – silent