在 Windows 7 机器上,我无法读取任何包含分号的注册表值。
例如,如果您有 7-zip,请运行以下命令
SET(MYPATH [HKEY_LOCAL_MACHINE\\SOFTWARE\\7-Zip;Path])
MESSAGE("MYPATH = ${MYPATH}")
结果是
MYPATH = [HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip;Path]
而不是按照以下 thread 的实际路径。我认为 cmake 支持包含“;”的注册表路径在 Windows 7 上坏了。有人可以确认吗?有什么解决办法吗?
最佳答案
According to the wiki ,您不能使用 SET
查看注册表项的值。注册表值仅在您对其执行某些缓存操作时才会被读取。例如,以下应输出您想要的路径:
GET_FILENAME_COMPONENT(MYPATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\7-Zip;Path]"
ABSOLUTE CACHE)
MESSAGE("MYPATH = ${MYPATH}")
关于cmake - 使用 cmake 读取注册表值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1762201/