我想从CMake变量中删除特定库。
假设LIB
包含变量“A; B; C”的值,
我知道使用set
添加另一个变量“D”的内容,就像这样
set(LIB ${LIB};D)
但是我试图从LIB
删除“C”,如下所示
unset(LIB C)
此代码不起作用。 有没有人知道这样做的好方法?
答案 0 :(得分:2)
这不是 foreach($_SESSION['movie'] as $key => $value){
echo "Movie: " .$key."=". $value;
}
foreach($_SESSION['session'] as $key => $value){
echo "Session: " .$key."=". $value;
}
的工作方式。在您的示例中,$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
foreach($age as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
取消了变量unset
和unset(LIB C)
。它不会从LIB
删除C
部分。
由于所有变量都是CMake中的内部字符串,因此您应该使用C
。在你的情况下
LIB
用空字符串替换所有出现的string(REPLACE)
,并将结果存储在string(REPLACE C "" LIBwithoutC LIB)
中。您可能需要对此进行微调以删除额外的分号。
答案 1 :(得分:-2)
至少有三种方法可能已经知道:
run cmake-gui (or make edit_cache) to open the "cache editor", i.e. the GUI for cmake
the "Holzhammer" method: simply remove the complete cache or build directory and start again
and delete the entries you don't want there
open CMakeCache.txt in a text editor and edit it manually
还有另一种方法,你可能还不知道。 除了“-D”(定义变量)之外,cmake还有“-U”(非定义变量),您可以使用它从缓存中删除条目。 它是这样的:$ cmake -U * QT *。