使用cmake读取注册表值

dzh*_*lil 4 registry cmake

在Windows 7计算机上,我无法读取包含分号的任何注册表值.

例如,如果您有7-zip,请运行以下命令

SET(MYPATH  [HKEY_LOCAL_MACHINE\\SOFTWARE\\7-Zip;Path])
MESSAGE("MYPATH = ${MYPATH}")
Run Code Online (Sandbox Code Playgroud)

结果是

MYPATH = [HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip;Path]
Run Code Online (Sandbox Code Playgroud)

而不是按照以下线程的实际路径.我认为cmake支持包含";"的注册表路径 在Windows 7上被破坏了.有人可以证实这一点吗?有没有解决方法?

ric*_*chq 5

根据wiki,您无法使用SET查看注册表项的值.只有在对其执行某些缓存操作时才会读取注册表值.例如,以下内容应输出您想要的路径:

GET_FILENAME_COMPONENT(MYPATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\7-Zip;Path]"
                       ABSOLUTE CACHE)
MESSAGE("MYPATH = ${MYPATH}")
Run Code Online (Sandbox Code Playgroud)