字符串子命令STRIP“需要两个参数”的CMake错误

时间:2014-10-27 10:30:11

标签: cmake

我正在尝试使用CMake编译库。该库使用CMake和pods构建系统。 在配置期间,我收到以下错误:

CMake Error at cmake/pods.cmake:257 (string): 
string sub-command STRIP requires two arguments.

在特定文件pods.cmake中,命令如下所示:

execute_process(COMMAND 
  ${PKG_CONFIG_EXECUTABLE} --cflags-only-I ${ARGN}
  OUTPUT_VARIABLE _pods_pkg_include_flags)
string(STRIP ${_pods_pkg_include_flags} _pods_pkg_include_flags)

对我来说很好看。有什么想法发生这个错误?我不明白为什么cmake抱怨它有两个STRIP命令的参数,当它显然有两个。

注意:我使用cmake 2.8.12.2,但根据documentation,这应该是有效的。

1 个答案:

答案 0 :(得分:7)

虽然您的CMake文件在语法上包含两个参数,但${_pods_pkg_include_flags}可以为空。如果是这样,它在语义上不是一个参数,永远不会到达string(),然后只看到一个。如果字符串可能为空(并且您希望在这种情况下将其视为空字符串而不是跳过它),请引用它:

string(STRIP "${_pods_pkg_include_flags}" _pods_pkg_include_flags)