小编dar*_*le2的帖子

在 Windows 10 x64 中使用 CMAKE、FetchContent 和 Visual Studio 2019 构建 libpng 和 zlib 时出现链接错误

我正在尝试使用 CMAKE 构建 libpng,但它需要 zlib,所以我正在尝试构建它们,但没有任何运气。我喜欢 FetchContent,这样我就可以指定一个 GIT_TAG,并在将来需要时轻松更新它。现在我只有一个空白的 test.c 文件来说明问题。

我收到这些链接错误:

LNK1120 1 unresolved externals 
MinimalApp\out\build\x64-Debug\_deps\libpng-build\png-fix-itxt.exe

LNK2019 unresolved external symbol crc32 referenced in function main
Run Code Online (Sandbox Code Playgroud)

当我用这个 CMakeLists.txt 构建时

cmake_minimum_required (VERSION 3.14)

include(FetchContent)

project(MinimalApp)

FetchContent_Declare(
    zlib
    GIT_REPOSITORY https://github.com/madler/zlib.git
    GIT_TAG        v1.2.11
)

FetchContent_MakeAvailable(zlib)

set(ZLIB_INCLUDE_DIR ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR})
set(PNG_BUILD_ZLIB ON CACHE BOOL "Custom zlib Location, else find_package is used")

FetchContent_Declare(
    libpng
    GIT_REPOSITORY  https://github.com/glennrp/libpng.git
    GIT_TAG        v1.6.37
)
FetchContent_MakeAvailable(libpng)

include_directories(
    ${libpng_SOURCE_DIR}
    ${libpng_BINARY_DIR}
)

add_library(MinimalApp SHARED 
    "test.c"
)

set_target_properties(MinimalApp PROPERTIES
    LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/../bin/${CMAKE_BUILD_TYPE}/x64
    RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/../bin/${CMAKE_BUILD_TYPE}/x64
) 
Run Code Online (Sandbox Code Playgroud)

我的 test.c 文件是空白的。

cmake libpng

5
推荐指数
1
解决办法
1514
查看次数

标签 统计

cmake ×1

libpng ×1