在给定的显式路径之后,FreeType不与CMake链接。

时间:2016-06-07 06:16:41

标签: c++ cmake mingw freetype

我将FreeType与我的项目相关联存在问题。我的libs位于一个单独的文件夹{PROJECT} / lib中,libfreetype.a位于该文件夹中。我的编译器是MinGW-64 4.8.3 x86_64-posix-seh-rev2,我使用这个编译器从源代码构建了libfreetype.a。我的cmake文件如下所示:

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)

运行此命令将导致链接器失败并且未定义对'__imp_FT_Init_FreeType'的引用。删除libfreeType.a会导致CMAKE说它找不到-lfreeType(如预期的那样),但是包含libfreetype.a会导致链接器错误。

1 个答案:

答案 0 :(得分:0)

我必须改变我的答案,因为我自己尝试了它,这是胡说八道。

我认为,您必须将最后一行更改为

target_link_libraries(Test ${FREETYPE_LIBRARY})