建筑Zlib& libz作为cmake外部项目
我正在尝试使用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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论