2.1.100. --[no_]reduce_paths

此选项允许或禁止删除文件路径中的冗余路径名信息。

如果允许删除冗余路径名信息,则编译器会从传递给操作系统的目录中删除 xyz\.. 格式的序列。 这包括编译器在执行 #include 搜索等操作时自身构建的系统路径。

Note

如果 xyz 为链接,则 xyz\.. 格式序列的删除可能无效。

模式

此选项仅在 Windows 系统中有效。

用法

Windows 系统对文件路径有 260 个字符的限制。 如果存在其绝对路径名长度超过 260 个字符的路径名,则可以使用 --reduce_paths 选项,该选项通过将目录与对应的 .. 实例相匹配并成对删除 directory/.. 序列,可以缩短绝对路径名的长度。

Note

建议优先使用 --reduce_paths 选项来尽量缩短路径长度,并避免使用长文件路径和深层嵌套文件路径。

缺省选项

缺省为 --no_reduce_paths

示例

编译以下文件


..\..\..\xyzzy\xyzzy\objects\file.c

该文件位于以下目录中


\foo\bar\baz\gazonk\quux\bop

这会生成以下实际的路径


\foo\bar\baz\gazonk\quux\bop\..\..\..\xyzzy\xyzzy\objects\file.o

如果使用 --reduce_paths 选项从同一目录中编译同一文件,则会生成以下一个实际的路径


\foo\bar\baz\xyzzy\xyzzy\objects\file.c

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential