【分享】目录名太长导致Vivado和Vitis编译失败,使用短目录名和工程名解决问题。

最近使用Vivado 2024.2和Vitis 2024.2做设计,编译例子工程时遇到错误,"FAILED: ....../translation_table.S.obj "。
原来的工程的Workspace目录是“C:/prj/focus/test10/vck190/vck190_cips_exam/vitis_0805",长55个字符。更改Workspace目录为“C:\prj\test10\vck190_v242\vitis”,长32个字符。再次创建和编译工程,正常。
这是由于Windows旧版本下,文件路径的最大长度为 MAX_PATH,被定义为 260 个字符。虽然Windows新版本可能没有这个限制,但是有些老软件还是遵循这个限制。Vivado和Vitis内部,使用了较长的字符串做为子目录名。因此,Vivado和Vitis的工程目录,不能太长,最好在20个字符以内;工程名也不要太长,最好在10个字符以内。
如果使用Linux系统,基本没有这个问题。Linux系统下,文件路径最长一般是4096个字符。
Vitis编译的详细错误信息如下:

[183/192] C:\Xilinx\Vitis\2024.2\gnu\aarch64\nt\aarch64-none\bin\aarch64-none-elf-gcc.exe  -IC:/prj/focus/test10/vck190/vck190_cips_exam/vitis_0805/vck190_cips_exam_0805/psv_cortexa72_0/standalone_psv_cortexa72_0/bsp/libsrc/build_configs/gen_bsp/include -isystem C:/prj/focus/test10/vck190/vck190_cips_exam/vitis_0805/vck190_cips_exam_0805/psv_cortexa72_0/standalone_psv_cortexa72_0/bsp/include -O2 -DSDT -DARMA72_EL3  -MMD -MP -specs=C:/prj/focus/test10/vck190/vck190_cips_exam/vitis_0805/vck190_cips_exam_0805/psv_cortexa72_0/standalone_psv_cortexa72_0/bsp/Xilinx.spec -IC:/prj/focus/test10/vck190/vck190_cips_exam/vitis_0805/vck190_cips_exam_0805/psv_cortexa72_0/standalone_psv_cortexa72_0/bsp/include   -c  -g -Wall -Wextra -fno-tree-loop-distribute-patterns "-D__FILENAME__='__FILE__'" -MD -MT libsrc/standalone/src/CMakeFiles/xilstandalone.dir/670ca649b2c9928ae0ce00bb07f07a15/translation_table.S.obj -MF libsrc\standalone\src\CMakeFiles\xilstandalone.dir\670ca649b2c9928ae0ce00bb07f07a15\translation_table.S.obj.d -o libsrc/standalone/src/CMakeFiles/xilstandalone.dir/670ca649b2c9928ae0ce00bb07f07a15/translation_table.S.obj -c C:/prj/focus/test10/vck190/vck190_cips_exam/vitis_0805/vck190_cips_exam_0805/psv_cortexa72_0/standalone_psv_cortexa72_0/bsp/libsrc/standalone/src/arm/ARMv8/64bit/platform/versal/gcc/translation_table.S
FAILED: libsrc/standalone/src/CMakeFiles/xilstandalone.dir/670ca649b2c9928ae0ce00bb07f07a15/translation_table.S.obj 
............
ninja: build stopped: subcommand failed.
[ERROR] Error in generating platform.Error in generating platform 'vck190_cips_exam_0805.'
 --------------------------------------------------------------------------------
[8/5/2025, 2:45:22 PM]: Generate vck190_cips_exam_0805 platform with id 'dc9871c0-3a46-4a0b-b085-64e925a43c62' ended.

如果Vivado的工程目录和工程名太长,也会得到错误信息“[Hsi 55-1433] Error boost::filesystem::copy_file: The system cannot find the path specified: ".../translation_table.S"”。

详细错误信息如下:

[Hsi 55-1433] Error boost::filesystem::copy_file: The system cannot find the path specified: "C:/Xilinx/2025.1/Vivado/data/embeddedsw\lib\bsp\standalone_v9_3/src\arm\ARMv8\64bit\platform\versal\armclang\translation_table.S", "C:\prj\focus\test10\vck190_v251\vck190_v251_cips_example_2\vck190_v251_cips_example_2.runs\impl_1\.Xil\Vivado-9940-XSZHANKF01\versal_plm\versal_plm_bsp\CIPS_0_pspmc_0_psv_pmc_0/libsrc/standalone_v9_3/src\arm\ARMv8\64bit\platform\versal\armclang\translation_table.S"
posted @ 2025-08-06 17:53  HankFu  阅读(136)  评论(0)    收藏  举报