2016-06-07 1 views
-1

J'ai un problème avec la liaison FreeType avec mon projet. J'ai mes bibliothèques dans un dossier séparé, {PROJECT}/lib, où se trouve libfreetype.a. Mon compilateur est MinGW-64 4.8.3 x86_64-posix-seh-rev2, et j'ai construit libfreetype.a à partir de la source en utilisant ce compilateur. Mon fichier CMake se présente comme suit:FreeType ne pas lier avec CMake après le chemin explicite à la bibliothèque donnée.

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/Build/Debug") 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lmingw32") 
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++") 
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) 

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

set(FREETYPE_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/include/) 
set(FREETYPE_LIBRARY ${PROJECT_SOURCE_DIR}/lib/libfreetype.a) 
find_package(Freetype REQUIRED) 
set(SOURCE_FILES main.cpp ...) 

add_executable(Wahoo ${SOURCE_FILES}) 
target_link_libraries(Test freetype) 

L'exécution de ce forcerai l'éditeur de liens échouer avec des références non définies à « __imp_FT_Init_FreeType ». Supprimer le libfreeType.a provoque CMAKE dire qu'il ne peut pas trouver -lfreeType (comme prévu), mais en incluant libfreetype.a entraînera les erreurs de l'éditeur de liens.

Répondre

0

Je dois changer ma réponse, parce que j'ai essayé par moi-même et c'était des conneries.

Je pense, vous devez changer seulement votre dernière ligne dans

target_link_libraries(Test ${FREETYPE_LIBRARY})