4

Windows 7 マシンで、セミコロンを含むレジストリ値を読み取ることができません。

たとえば、7-zip がある場合は、次を実行します。

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

結果は

MYPATH = [HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip;Path]

次のスレッドによる実際のパスの代わりに。「;」を含むレジストリパスに対するcmakeのサポートだと思います 誰かがこれを確認できますか? 回避策はありますか?

4

1 に答える 1

7

wikiによるとSET、レジストリキーの値を表示するために使用することはできません。レジストリ値は、キャッシュ操作を行った場合にのみ読み取られます。たとえば、次のように必要なパスを出力する必要があります。

GET_FILENAME_COMPONENT(MYPATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\7-Zip;Path]"
                       ABSOLUTE CACHE)
MESSAGE("MYPATH = ${MYPATH}")
于 2009-12-26T16:21:16.890 に答える