在cmake中 通过execute_process 将变量 string_id(“123”) 转换成INT 赋值给 变量 SUB_ID
时间: 2024-12-14 15:14:41 浏览: 8
在CMake中,`execute_process`通常用于执行外部命令并获取其输出,但它本身并不支持直接将字符串转换为整数(INT)。为了实现这个需求,你需要先使用其他手段(如shell脚本、CMake内置函数等)将字符串转成整数,然后再赋值给变量。
这里是一个示例步骤:
1. 首先,在CMakeLists.txt文件中,你可以创建一个临时变量来存储字符串,并用`execute_process`获取字符串"123":
```cmake
execute_process(COMMAND sh -c "echo '123'"
OUTPUT_VARIABLE STRING_OUTPUT)
```
2. 然后使用CMake内置的`string`函数或者一个简单的正则表达式解析字符串,将其转换为整数。假设我们选择CMake内置的`STRING(ASCII)`函数:
```cmake
string(ASCII ${STRING_OUTPUT} INT_VALUE)
```
3. 最后,将整数值赋给你想要的变量`SUB_ID`:
```cmake
set(SUB_ID ${INT_VALUE})
```
请注意,这种方法依赖于所用的操作系统提供的shell支持以及CMake如何解释其输出。如果你需要跨平台的方式,可能需要使用更复杂的解决方案,比如编写自定义的CMake函数。
阅读全文