ファイル/home/me/.config/Kitware/CMakeCache.txt
には、どこからでも使いたい初期キャッシュ設定が含まれています。私はcmake -C /home/me/.config/Kitware/CMakeCache.txt
を実行し、それが私にこのファイルを使用して3行目のパースエラーを与える:なぜこのcmake初期キャッシュファイルは、このような奇妙なエラーを引き起こしますか?
set(CMAKE_CXX_FLAGS "-march=native -mtune=native" CACHE STRING "Flags used by the compiler during all build types.")
set(CMAKE_CXX_FLAGS_DEBUG "-Og -ggdb" CACHE STRING "Flags used by the compiler during debug builds.")
これは私が取得エラーです:私は(=
を追加する)ラインを変更した場合、
CMake Error: Parse error in cache file /home/me/.config/Kitware/CMakeCache.txt on line 3. Offending entry: set(CMAKE_CXX_FLAGS_DEBUG "-Og -ggdb" CACHE STRING "Flags used by the compiler during debug builds.")
だけに:
set(CMAKE_CXX_FLAGS_DEBUG "=-Og -ggdb" CACHE STRING "Flags used by the compiler during debug builds.")
それが正常に動作しますが、その後、私のプロジェクトでの結果のキャッシュファイルが=-Og -ggdb
に設定オプションがあります。実際、=
記号は、set
文全体のどこにでも表示できます。しかし、どこに置いても違う問題が発生します。
私はCMakeCache.txt
以外/home/me/.config/Kitware/default.cmake
(または他の何かにファイル名を変更した場合、それはまた、正常に動作し、すべてのオプションの値で=
記号を必要としません。
これは非常に奇妙な行動である、と私はドン」 tはそれを理解し、ここで何が起こっている
行がよく見えます。私はそれが明らかだが、あなたはエンコードせずに初期キャッシュファイルを保存しようとしましたか?時には '--'は実際にはマイナス記号ではない(ブラウザからコピーされたとき)。 – Florian
@Florian - まあ、私はemacsを使っていました。そしてその行はブラウザからコピーされませんでした。私は手でそれをタイプした。そして、それは私が別の名前をつけたときに全く同じファイルがなぜ働いたのかを説明していません。しかし、私は現在の 'defaults.cmake'ファイルを' CMakeCache.txt'にもう一度コピーし、同じエラーが出るかどうか確認します。 – Omnifarious
ああ、私はそれを逃した。あなたのメインの 'CMakeLists.txt'ファイルは同じディレクトリにありますか?次に、 'CMakeCache.txt'ファイルがあなたの実際のキャッシュファイルとして読み込まれ、エラーはやや理解できます([here](https://stackoverflow.com/questions/30503631/cmake-in-which-order-are- files-parsed-cache-toolchain)を参照してください)。 – Florian