告诉 CMake 在 Windows 中哪里可以找到 z.lib

Posted

技术标签:

【中文标题】告诉 CMake 在 Windows 中哪里可以找到 z.lib【英文标题】:Telling CMake where to find z.lib in Windows 【发布时间】:2018-11-13 17:06:37 【问题描述】:

免责声明:我不是软件工程师或程序员。我只是知道足以让自己陷入困境。请原谅任何滥用或不准确的条款。

我目前正在尝试使用内置的示例测试脚本来测试我的 HDF5 安装。这些由 CMake 组织并由 gcc(MinGW 和 MinGW-w64)编译。当我去执行测试脚本时:

ctest -S HDF518_Examples.cmake -C Release -V -O test.log

我遇到了一页又一页的错误,其中的核心是:

mingw32-make.exe[2]: *** No rule to make target 'C:/aroot/stage/Library/lib/z.lib', needed by 'bin/h5ex_d_compact.exe'.  Stop.

从我自己尝试解决这个问题的时间来看,我已经能够确定 z.lib 是 ZLIB 库的一个库文件的一部分,这些天无处不在。我也知道我在 /Library/lib/ 下的 Anaconda 目录中至少有一个此特定文件的副本。

我有两个问题:

1) 如何让 CMake 或 MinGW 识别此文件的位置,从而停止此错误?有可以设置的环境变量,或者可以修改的配置文件吗?

2) 顺便说一句,这条路径从何而来?我的电脑上没有 C:/aroot/ 目录。我也无法在任何 CMake、HDF5 或 MinGW 文件中找到此路径的任何生成器。那么为什么 CMake 会指向这个虚假目录呢?

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我在set_tests_properties中使用ENVIRONMENT PATH来指定依赖的外部库。

set_tests_properties($Testname PROPERTIES  ENVIRONMENT             
                      PATH=$/your/zlib/location 
                      WORKING_DIRECTORY "$/your/working/directory/") 

【讨论】:

以上是关于告诉 CMake 在 Windows 中哪里可以找到 z.lib的主要内容,如果未能解决你的问题,请参考以下文章

如何告诉 CMake(通过 externalNativeBuild 调用)在哪里寻找库?

CMAKE 如何告诉 makefile 链接库?

CMake 告诉我啥(Windows 上的错误)?

哪里能找到Windows API函数 手册

如何在 Ubuntu 中使用 cmake 设置 qt4?

CMake 找不到 GLEW