使用cmake读取注册表值

时间:2009-11-19 10:05:20

标签: cmake registry

在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上被破坏。有人可以证实这一点吗?有没有解决办法?

1 个答案:

答案 0 :(得分:5)

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

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