2012-04-13 7 views
4

現在のプロジェクトはかなり複雑な構造(変更できません)を持ち、CMakeを使用しています。 しかし、私はコンパイルできるMakefileを作るのに困っています。CMakeはMakefile生成で長すぎるパス名を生成します

主に問題がある:私のプロジェクトはD:\a\b\c\buildで、D:\a\b\c\D:\a\b\c\src\d\eでいくつかのソースとビルドフォルダに格納されている場合は、cmakeのはD:\a\b\c\build\SubProjectName\CMakeFiles\DetailedSubPrjectName.dir\D_\a\b\c\src\d\eのようないくつかのフォルダを作成します。私はあなたがポイントを得ると思う - それは結果のパスが260文字より長いことが起こる。

プロジェクトの構造(私のコードではない)を平坦化できません。この作業を行う唯一の方法は、プロジェクト全体をフォルダ構造のどこかに置くことです。ドライブルートの近くに(非常に)(私は約10-15文字の空きがあります)。しかし、これは本当に受け入れられません、時にはより多くの文字が必要です。

CMakeがビルドディレクトリにフラット構造を作成するか、(WinXPで)より長いパス名を使用するように説得する方法はありますか?それとも別のアイデアですか?

答えて

1

あなたはあなたのパスを少し短くするCMAKE_USE_RELATIVE_PATHSを使用するように試みることができるが、どうやらそれは働いていないの記録を持っている...

とにかく問題はよりCMakeのよりのWindowsから来て、あなたはより良い最大パスを増加しようとしますシステムの長さ残念ながら、私はここであなたを助けることはできません。

しかし、CMakeはおそらくWindows XPでパス長の制限を認識しているはずですので、私はfile a bugをお勧めします。これはCMake開発者が何かできることです。

+0

CMAKE_USE_RELATIVE_PATHSを使用しても問題は残ります。私の現在の解決策は、一時ディレクトリ(c:\ tmp \ buildのような)を使用し、ビルド後のコピーを追加することです。私が推測する最良の解決策ではなく、私が考えることができる唯一の解決策です。 –

関連する問題