我想从 CMake 变量中删除特定的库。
假设LIB包含变量“A;B;C”的值,我知道set可以像这样添加另一个变量“D”的内容
set(LIB ${LIB};D)
Run Code Online (Sandbox Code Playgroud)
但是我尝试从LIB以下内容中删除“C”
unset(LIB C)
Run Code Online (Sandbox Code Playgroud)
这段代码不起作用。有谁知道这样做的好方法?
事情不是这样的unset。在您的示例中,unset(LIB C)取消设置变量LIB和C。它不会C从 中删除该部件LIB。
由于所有变量都是 CMake 中的内部字符串,因此您应该使用string(REPLACE). 在你的情况下
string(REPLACE C "" LIBwithoutC LIB)
Run Code Online (Sandbox Code Playgroud)
将所有出现的 替换C为空字符串并将结果存储在 中LIBwithoutC。您可能需要对此进行微调以删除多余的分号。
| 归档时间: |
|
| 查看次数: |
7232 次 |
| 最近记录: |