从 Linux 命令行向 CMake 服务器发送请求
Send request to CMake server from the Linux command line
我想从 Linux 命令行尝试 CMake 服务器模式。文档告诉我像下面这样启动 CMake:
cmake -E server (--debug|--pipe <NAMED_PIPE>)
但对我来说它只能这样工作:
cmake -E server --experimental --debug
[== "CMake Server" ==[
{"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":0}],"type":"hello"}
]== "CMake Server" ==]
我试图向服务器发送请求,但我只收到问候响应:
cat request.txt | cmake -E server --experimental --debug
[== "CMake Server" ==[
{"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":0}],"type":"hello"}
]== "CMake Server" ==]
如何向 CMake 服务器发送请求?
CMake 服务器将期待以下格式的 --debug
或 --pipe
模式的消息:
[== "CMake Server" ==[
...您的留言...
]== "CMake Server" ==]
CMake 服务器帮助页面有更多示例,但这里有一些可以帮助您入门的内容。
对于以下示例,我使用的是 CMake 3.10,如果您使用的是旧版本,则可能需要将 "protocolVersion":{"major":1}
修改为 {"major":0}
。
您还需要有一个 CMake 项目,并知道 CMakeLists.txt
文件所在的源目录,以及 cmake 将放置树外文件的构建文件夹。
如果您想尝试 --debug --experimental
标志,服务器将期望从标准输入中获取输入。所以在 运行 cmake -E server --debug --experimental
之后输入以下内容:
[== "CMake Server" ==[
{"cookie":"yummy","type":"handshake","protocolVersion":{"major":1},
"sourceDirectory":"/path/to/CMakeList.txt","buildDirectory":"/path/to/build/folder",
"generator":"Unix Makefiles"}
]== "CMake Server" ==]
它应该返回一堆信息并且构建文件夹现在应该包含一些文件。
如果您想改用命名管道,则必须使用 netcat 之类的工具。以你的命令为例,在后台运行ning cmake -E server --pipe=pipe --experimental
后,你可以使用如下命令:
nc -U pipe
此时,nc 也将期待标准输入中的输入,因此您将能够像以前一样输入相同的 json 消息并获得相同的响应。
我想从 Linux 命令行尝试 CMake 服务器模式。文档告诉我像下面这样启动 CMake:
cmake -E server (--debug|--pipe <NAMED_PIPE>)
但对我来说它只能这样工作:
cmake -E server --experimental --debug
[== "CMake Server" ==[
{"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":0}],"type":"hello"}
]== "CMake Server" ==]
我试图向服务器发送请求,但我只收到问候响应:
cat request.txt | cmake -E server --experimental --debug
[== "CMake Server" ==[
{"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":0}],"type":"hello"}
]== "CMake Server" ==]
如何向 CMake 服务器发送请求?
CMake 服务器将期待以下格式的 --debug
或 --pipe
模式的消息:
[== "CMake Server" ==[
...您的留言...
]== "CMake Server" ==]
CMake 服务器帮助页面有更多示例,但这里有一些可以帮助您入门的内容。
对于以下示例,我使用的是 CMake 3.10,如果您使用的是旧版本,则可能需要将 "protocolVersion":{"major":1}
修改为 {"major":0}
。
您还需要有一个 CMake 项目,并知道 CMakeLists.txt
文件所在的源目录,以及 cmake 将放置树外文件的构建文件夹。
如果您想尝试 --debug --experimental
标志,服务器将期望从标准输入中获取输入。所以在 运行 cmake -E server --debug --experimental
之后输入以下内容:
[== "CMake Server" ==[
{"cookie":"yummy","type":"handshake","protocolVersion":{"major":1},
"sourceDirectory":"/path/to/CMakeList.txt","buildDirectory":"/path/to/build/folder",
"generator":"Unix Makefiles"}
]== "CMake Server" ==]
它应该返回一堆信息并且构建文件夹现在应该包含一些文件。
如果您想改用命名管道,则必须使用 netcat 之类的工具。以你的命令为例,在后台运行ning cmake -E server --pipe=pipe --experimental
后,你可以使用如下命令:
nc -U pipe
此时,nc 也将期待标准输入中的输入,因此您将能够像以前一样输入相同的 json 消息并获得相同的响应。