[编程报错] cmake 编译vtk的代码时报错。

错误如下:

CMake Warning (dev) in CMakeLists.txt:
Policy CMP0020 is not set: Automatically link Qt executables to qtmain
target on Windows. Run “cmake –help-policy CMP0020” for policy details.
Use the cmake_policy command to set the policy and suppress this warning.
This warning is for project developers. Use -Wno-dev to suppress it.

即:

CMakeLists.txt中的CMake警告(dev):
未设置策略CMP0020:自动将Qt可执行文件链接到qtmain
Windows上的目标。运行“cmake –help-policy CMP0020”以获取策略详细信息。
使用cmake_policy命令设置策略并禁止显示此警告。
此警告适用于项目开发人员。使用-Wno-dev来抑制它。

提示运行一个命令获取策略信息 cmake –help-policy CMP0020

得到信息

CMP0020

Automatically link Qt executables to qtmain target on Windows.

CMake 2.8.10 and lower required users of Qt to always specify a link
dependency to the qtmain.lib static library manually on Windows.
CMake 2.8.11 gained the ability to evaluate generator expressions
while determining the link dependencies from IMPORTED targets. This
allows CMake itself to automatically link executables which link to Qt
to the qtmain.lib library when using IMPORTED Qt targets. For
applications already linking to qtmain.lib, this should have little
impact. For applications which supply their own alternative WinMain
implementation and for applications which use the QAxServer library,
this automatic linking will need to be disabled as per the
documentation.

The OLD behavior for this policy is not to link executables to
qtmain.lib automatically when they link to the QtCore IMPORTED target.
The NEW behavior for this policy is to link executables to qtmain.lib
automatically when they link to QtCore IMPORTED target.

This policy was introduced in CMake version 2.8.11. CMake version
3.11.2 warns when the policy is not set and uses OLD behavior. Use
the cmake_policy command to set it to OLD or NEW explicitly.

.. note::
The OLD behavior of a policy is
deprecated by definition
and may be removed in a future version of CMake.

我的cmake版本是3.11.2. This policy was introduced in CMake version 2.8.11. CMake version
3.11.2 warns when the policy is not set and uses OLD behavior. 。 当把cmakelists中的cmake版本改到我的cmake版本时 不再有这个警告。
事实上这个警告无伤大雅。无所谓的。

猜你喜欢

转载自blog.csdn.net/yijiangyi/article/details/81334167