2012-04-13 453 views
4

當前項目的結構非常複雜(我無法更改),它使用CMake。 但我有麻煩來創建一個可以編譯的Makefile。CMake在生成Makefile時生成的路徑名太長

主要的問題是:如果我的項目被存儲在D:\a\b\c\,在D:\a\b\c\src\d\e一些源和D:\a\b\c\build build文件夾,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,以縮短路徑一點點,但顯然它不工作的記錄......

但無論如何,問題就來了從Windows超過CMake和你最好儘量增加最大路徑在你的系統上的長度。不幸的是,我無法幫到你。但是,CMake應該知道Windows XP上的路徑長度限制,因此我建議您使用file a bug,這樣CMake開發人員就可以做些什麼。

+0

如果我使用CMAKE_USE_RELATIVE_PATHS,問題仍然存在。我目前的解決方案是使用臨時目錄(如c:\ tmp \ build)並添加後構建副本。不是我想的最好的解決方案,但是我能想到的唯一解決方案。 – 2012-04-16 07:23:25