我将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会导致链接器错误。
答案 0 :(得分:0)
我必须改变我的答案,因为我自己尝试了它,这是胡说八道。
我认为,您必须将最后一行更改为
target_link_libraries(Test ${FREETYPE_LIBRARY})