2014-10-27 1125 views
3

我想用CMake編譯一個庫。該庫使用CMake和pod構建系統。 配置過程中,我得到了以下錯誤:CMake錯誤字符串子命令STRIP「需要兩個參數」

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這應該是有效的。

回答

7

雖然您的CMake文件在語法上包含兩個參數,但${_pods_pkg_include_flags}可以爲空。如果是這樣,它不是語義上的參數,並且永遠不會達到string(),然後只看到一個。如果字符串可能爲空(並且您希望將其視爲空字符串而不是跳過它),請引用它:

string(STRIP "${_pods_pkg_include_flags}" _pods_pkg_include_flags) 
+0

這實際上使得很多理解和解決問題。謝謝! – Chris85 2014-10-27 14:45:37

+0

同樣適用於Windows下構建paho C庫的問題。 – DrP3pp3r 2016-09-30 09:05:41

相關問題