如何修复CMake CMP0018警告

How to fix CMake CMP0018 warning?

本文关键字:警告 CMP0018 CMake 何修复      更新时间:2023-10-16

我使用CMake 2.8.12.2来构建我的项目(在Mac中),该项目包含以下两个模块:

project
   |
   |____ module_a
   |
   |____ module_b

module_amodule_b被构建为STATIC库时,当cmake project时没有警告。但是,如果我将模块更改为SHARED库,我会遇到警告:

  Variable CMAKE_SHARED_LIBRARY_C_FLAGS has been modified.  CMake will ignore
  the POSITION_INDEPENDENT_CODE target property for shared libraries and will
  use the CMAKE_SHARED_LIBRARY_C_FLAGS variable instead.  This may cause
  errors if the original content of CMAKE_SHARED_LIBRARY_C_FLAGS was removed.
  Policy CMP0018 is not set: Ignore CMAKE_SHARED_LIBRARY_<Lang>_FLAGS
  variable.  Run "cmake --help-policy CMP0018" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

这对我来说毫无意义,因为我从未处理过CMAKE_SHARED_LIBRARY_C_FLAGS

如何修复此警告?我不喜欢忽略它。

您可以使用cmake_policy命令来选择所需的策略。