在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上被破坏。有人可以证实这一点吗?有没有解决办法?
答案 0 :(得分:5)
According to the wiki,您无法使用SET
来查看注册表项的值。只有在对其执行某些缓存操作时才会读取注册表值。例如,以下内容应输出您想要的路径:
GET_FILENAME_COMPONENT(MYPATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\7-Zip;Path]"
ABSOLUTE CACHE)
MESSAGE("MYPATH = ${MYPATH}")