adr*_*min 4 windows path cmake
我有一个使用 CMake 的项目,并在 Windows 上的一组深度嵌套的目录中构建,通常会由于路径长度过长而失败。
基于这个答案 - How to set the Maximum Path Length with CMAKE? - (以及下面@Tsyvarev 的评论 - CMake 的最大路径长度- 我将其放在项目根目录中的 CMakeLists.txt 中并靠近文件顶部(即在任何其他处理之前):
set(CMAKE_OBJECT_PATH_MAX 250)
set(CMAKE_OBJECT_NAME_MAX 245)
Run Code Online (Sandbox Code Playgroud)
(由于构建始终在 Windows 上进行,因此我没有在之前问题的答案中考虑 Unix 测试。)
然而,它仍然失败。
我有其他机制来缩短路径长度,所以我知道这是这里的问题 - 但我正在寻找一般建议,向用户提供有关如何设置 CMake 构建以确保他们避免此问题的建议 - 我的理解是CMake 将使用哈希方案来避免长路径名,但这似乎没有发生。
那么这样的机制是否存在,如果存在我该如何访问它呢?
您可以使用 CMake 设置路径长度限制CMAKE_OBJECT_PATH_MAX,例如:
if (WIN32)
set(CMAKE_OBJECT_PATH_MAX 260)
endif ()
Run Code Online (Sandbox Code Playgroud)
但实际上,如果您有能力这样做,您应该通过 PowerShell 命令删除路径长度限制(从 Windows 10 v1607 开始):
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" `
-Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
Run Code Online (Sandbox Code Playgroud)
请参阅:https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation? tabs=powershell
| 归档时间: |
|
| 查看次数: |
7943 次 |
| 最近记录: |