建筑Zlib& libz作为cmake外部项目

发布于 2025-02-13 01:13:49 字数 2375 浏览 0 评论 0原文

我正在尝试使用cmake制作超级建筑,以抽象整个依赖性麻烦,Zlib配置,构建和安装非常顺利,但是Libz却没有。

外部CMakelists:

include(ExternalProject)
ExternalProject_Add(zlib
    URL https://github.com/madler/zlib/archive/refs/tags/v1.2.11.zip
    URL_HASH MD5=9d6a627693163bbbf3f26403a3a0b0b1
    DOWNLOAD_DIR ${DEPEND_DIR}/zlib/repo
    SOURCE_DIR ${DEPEND_DIR}/zlib/src
    BUILD_IN_SOURCE 1
    CMAKE_ARGS -D BUILD_SHARED_LIBS=ON
               -D CMAKE_INSTALL_PREFIX:PATH=${DEPEND_DIR}/zlib/install
               -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}   
    STEP_TARGETS configure build install         
)

set(ZLIB_INCLUDE_DIR ${DEPEND_DIR}/zlib/install/include)
set(ZLIB_LIB_DIR ${DEPEND_DIR}/zlib/install/lib)

ExternalProject_Add(libz
    URL https://github.com/nih-at/libzip/archive/refs/tags/v1.7.3.zip
    URL_HASH MD5=98b4817aaa1f382513f08838c7192cbd
    DEPENDS zlib-install
    DOWNLOAD_DIR ${DEPEND_DIR}/libz/repo
    SOURCE_DIR ${DEPEND_DIR}/libz/src
    BUILD_IN_SOURCE 1
    CMAKE_ARGS  -D ENABLE_BZIP2=OFF
                -D ENABLE_LZMA=OFF
                -D ENABLE_GNUTLS=OFF
                -D ENABLE_MBEDTLS=OFF
                -D ENABLE_OPENSSL=OFF
                -D BUILD_REGRESS=OFF
                -D BUILD_DOC=OFF
                -D BUILD_EXAMPLES=OFF
                -D LIBZIP_DO_INSTALL=ON
                -D BUILD_SHARED_LIBS=ON
                -D ZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIR}
                -D ZLIB_LIBRARY_RELEASE=${ZLIB_LIB_DIR}
                -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
                -D CMAKE_INSTALL_PREFIX:PATH=${DEPEND_DIR}/libz/install
)

这是错误:

[  1%] Linking C shared library libzip.dll
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find C:/Workspace/Simulation/TestProject/dependencies/zlib/install/lib: Permission denied
collect2.exe: error: ld returned 1 exit status
make[5]: *** [lib/CMakeFiles/zip.dir/build.make:1988: lib/libzip.dll] Error 1
make[4]: *** [CMakeFiles/Makefile2:174: lib/CMakeFiles/zip.dir/all] Error 2
make[3]: *** [Makefile:146: all] Error 2
make[2]: *** [external/CMakeFiles/libz.dir/build.make:86: external/libz-prefix/src/libz-stamp/libz-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:237: external/CMakeFiles/libz.dir/all] Error 2
make: *** [Makefile:111: all] Error 2

牢记,不幸的是,我没有管理员访问。

I am trying to make a superbuild using cmake to abstract the whole dependencies hassle, zlib configures, builds and installs pretty smoothly, but libz doesn't.

External CMakeLists:

include(ExternalProject)
ExternalProject_Add(zlib
    URL https://github.com/madler/zlib/archive/refs/tags/v1.2.11.zip
    URL_HASH MD5=9d6a627693163bbbf3f26403a3a0b0b1
    DOWNLOAD_DIR ${DEPEND_DIR}/zlib/repo
    SOURCE_DIR ${DEPEND_DIR}/zlib/src
    BUILD_IN_SOURCE 1
    CMAKE_ARGS -D BUILD_SHARED_LIBS=ON
               -D CMAKE_INSTALL_PREFIX:PATH=${DEPEND_DIR}/zlib/install
               -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}   
    STEP_TARGETS configure build install         
)

set(ZLIB_INCLUDE_DIR ${DEPEND_DIR}/zlib/install/include)
set(ZLIB_LIB_DIR ${DEPEND_DIR}/zlib/install/lib)

ExternalProject_Add(libz
    URL https://github.com/nih-at/libzip/archive/refs/tags/v1.7.3.zip
    URL_HASH MD5=98b4817aaa1f382513f08838c7192cbd
    DEPENDS zlib-install
    DOWNLOAD_DIR ${DEPEND_DIR}/libz/repo
    SOURCE_DIR ${DEPEND_DIR}/libz/src
    BUILD_IN_SOURCE 1
    CMAKE_ARGS  -D ENABLE_BZIP2=OFF
                -D ENABLE_LZMA=OFF
                -D ENABLE_GNUTLS=OFF
                -D ENABLE_MBEDTLS=OFF
                -D ENABLE_OPENSSL=OFF
                -D BUILD_REGRESS=OFF
                -D BUILD_DOC=OFF
                -D BUILD_EXAMPLES=OFF
                -D LIBZIP_DO_INSTALL=ON
                -D BUILD_SHARED_LIBS=ON
                -D ZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIR}
                -D ZLIB_LIBRARY_RELEASE=${ZLIB_LIB_DIR}
                -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
                -D CMAKE_INSTALL_PREFIX:PATH=${DEPEND_DIR}/libz/install
)

Here's the error:

[  1%] Linking C shared library libzip.dll
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find C:/Workspace/Simulation/TestProject/dependencies/zlib/install/lib: Permission denied
collect2.exe: error: ld returned 1 exit status
make[5]: *** [lib/CMakeFiles/zip.dir/build.make:1988: lib/libzip.dll] Error 1
make[4]: *** [CMakeFiles/Makefile2:174: lib/CMakeFiles/zip.dir/all] Error 2
make[3]: *** [Makefile:146: all] Error 2
make[2]: *** [external/CMakeFiles/libz.dir/build.make:86: external/libz-prefix/src/libz-stamp/libz-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:237: external/CMakeFiles/libz.dir/all] Error 2
make: *** [Makefile:111: all] Error 2

Bearing in mind, I don't have admin access unfortunately.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文