string(REPLACE ".proto" ".pb.cc" PbCC ${proto_native})
时间: 2023-11-13 16:03:02 浏览: 27
这是一个CMake脚本中的字符串替换操作,用于将`${proto_native}`中的`.proto`替换成`.pb.cc`。具体来说,`${proto_native}`变量表示当前遍历到的`.proto`文件的完整路径,例如`/path/to/example.proto`。通过上述命令,将其替换成对应的`.pb.cc`文件路径,例如`/path/to/example.pb.cc`。`${PbCC}`则表示替换后的结果。这个替换操作主要是为了方便后续的文件生成和拷贝操作。
相关问题
MACRO(GENPROTO) FILE(GLOB PROTO_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.proto) FOREACH(proto ${PROTO_FILES}) FILE(TO_NATIVE_PATH ${proto} proto_native) string(REPLACE ".proto" ".pb.cc" PbCC ${proto_native}) string(REPLACE ".proto" ".pb.h" Pbh ${proto_native}) string(REPLACE "${PROJECT_SOURCE_DIR}/" "${PROJECT_BINARY_DIR}/" PbCC ${PbCC}) string(REPLACE "${PROJECT_SOURCE_DIR}/" "${PROJECT_BINARY_DIR}/" Pbh ${Pbh}) if ((not EXISTS ${PbCC}) OR (${proto_native} IS_NEWER_THAN ${PbCC})) # message("proto: " ${proto_native} " -> " ${PbCC}) EXECUTE_PROCESS(COMMAND ${PROTOBUF_PROTOC_EXECUTABLE} --proto_path=${PROJECT_SOURCE_DIR} --cpp_out=${PROJECT_BINARY_DIR} ${proto_native} RESULT_VARIABLE res_var ) if (res_var STREQUAL "1") message(FATAL_ERROR "Generate proto error!!! file: ${proto_native}") endif() execute_process(COMMAND cp ${Pbh} ${CMAKE_CURRENT_SOURCE_DIR} ERROR_VARIABLE res_var) if(res_var) message(FATAL_ERROR ${res_var}) endif() endif() ENDFOREACH(proto) ENDMACRO()
这是一个CMake脚本中的宏定义,用于生成Protocol Buffer的C++代码。具体来说,该宏会遍历当前目录下的所有`.proto`文件,使用`PROTOBUF_PROTOC_EXECUTABLE`指定的编译器生成对应的`.pb.cc`和`.pb.h`文件,并将这些文件拷贝到源代码目录中。其中,`PROTOBUF_PROTOC_EXECUTABLE`是一个环境变量,用于指定Protocol Buffer的编译器路径。该脚本的主要功能是简化生成Protocol Buffer代码的过程,方便用户在CMake项目中使用。
Function.prototype.__proto__.__proto__ === null
这表达式是用来检查 Function.prototype 对象的原型链。根据 JavaScript 的原型继承机制,一个对象的 __proto__ 属性指向其构造函数的原型对象。因此,Function.prototype.__proto__ 指向 Object.prototype,再往上一级的原型是 null。
所以,Function.prototype.__proto__.__proto__ === null 是成立的。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)