我正在尝试使用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,这应该是有效的。
答案 0 :(得分:7)
虽然您的CMake文件在语法上包含两个参数,但${_pods_pkg_include_flags}
可以为空。如果是这样,它在语义上不是一个参数,永远不会到达string()
,然后只看到一个。如果字符串可能为空(并且您希望在这种情况下将其视为空字符串而不是跳过它),请引用它:
string(STRIP "${_pods_pkg_include_flags}" _pods_pkg_include_flags)