我正在尝试通过 AppVeyor 和 cmake 为 windows 编译一个跨平台的 QT 应用程序。
在 Linux 下,cmake 编译得很好,所以 CMakeLists.txt 应该是有效的。
AppVeyor 编译了一个必要的库,它也可以工作。但是当涉及到项目 CMakeLists.txt 时,它会失败并出现以下错误:
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
Call Stack (most recent call first):
C:/Program Files (x86)/CMake/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files (x86)/CMake/share/cmake-3.5/Modules/FindPNG.cmake:157 (find_package_handle_standard_args)
CMakeLists.txt:20 (find_package)
CMakeLists.txt 中的相应部分是:
find_package(PNG REQUIRED)
[...some other cmake stuff...]
# link required other libraries
include_directories(${PNG_INCLUDE_DIR} ${GSL_INCLUDE_DIRS})
target_link_libraries(projectName ${PNG_LIBRARY} ${GSL_LIBRARIES})
这是当前的构建失败: https ://ci.appveyor.com/project/zebastian/mandelbulber2
使用的 CMakeLists.txt 和 appveyor.yml 文件可以在项目根目录中找到: https ://github.com/zebastian/mandelbulber2
由于存在 FindPNG.cmake,似乎只缺少 zlib,这似乎有点奇怪。我已经看到了一些 appveyor.yml 文件,它们通过下载和编译一些 png / zlib 源文件夹或使用外部依赖项来规避这个问题,但恕我直言,这对于 CI 来说应该是一项简单的任务。
还是我错过了什么?
任何帮助表示赞赏...