我正在使用QuaZip库,它具有zlib依赖性。我想在Archlinux和Windows 7下编译我的CMake管理应用程序,我都安装了Qt 5.3.0。
在Linux上:
我在这里读到"如何将zlib添加到现有的qt安装",zlib是qt安装的本机部分。但是在archlinux中没有这样的目录。当然,我搜索了所有其他Qt包含目录,包括QtCore,但没有zlib的迹象。另一方面,zlib的系统安装可以通过FindZLIB在archlinux上找到。cmake模块。
在Windows:在Qt的Windows安装中,Qt包含目录下有QtZlib文件夹,所以它可以被包含。然而,编译器总是抱怨他不能从库中链接zlib函数,这里有错误日志。我也试过通过TARGET_LINK_LIBRARIES手动设置外部zlib库,但没有成功。
有谁有使用CMake在Qt5下链接Zlib的经验吗?
Qt的zlib是一个内部实现细节。你不应该用它。您需要链接您自己的zlib副本,就像您根本不使用Qt时需要的那样。
1)您应该在Archlinux上使用您的包管理器,在Windows上使用您自己的安装。不要依赖Qt第三方安装。它可能今天在那里,但在任何一个新的版本出来的特定时刻消失。
这是我建议你在你的Archlinux机器上做的:
pacman -S zlib
2)此外,您应该使用FindZLIB.cmake
在CMakeLists.txt中以以下方式查找zlib:
find_package( ZLIB REQUIRED )
if ( ZLIB_FOUND )
include_directories( ${ZLIB_INCLUDE_DIRS} )
target_link_libraries( YourProject ${ZLIB_LIBRARIES} )
endif( ZLIB_FOUND )