Я использую git-bash.exe из установки PortableGit с переменными среды из другого MinGW. Так что я:
WORKGROUP+user@AD-X MINGW32 /z/user/Downloads
$ which ar
//WORKGROUP.EX.COM/Users/user/Downloads/mingw-w64/i686-4.9.3-posix-dwarf-rt_v4-rev1/mingw32/bin/ar
WORKGROUP+user@AD-X MINGW32 /z/user/Downloads
$ gcc --version | head -1
GNU ar (GNU Binutils) 2.25
Теперь есть библиотека, которую я создаю, и в конце шаг ссылки завершается ошибкой при вызове команды ar
, которая выглядит примерно так:
ar -cr "Z:/user/Downloads/MyProjectNameABCDE/someLibraryABC/libs/someLibraryDEFGHI/lib/mingw/libsomeLibraryABCDebug.a" \
Z:/user/Downloads/MyProjectNameABCDE/someLibraryABC/libs/someLibraryDEFGHI/lib/mingw/obj/Debug/libs/someLibraryDEFGHI/test/someObject.o \
[...]
... и в нем перечислено множество объектов - длина командной строки составляет 10000 символов, что все еще меньше getconf ARG_MAX
из 32000 в оболочке MSYS2 PortableGit (git-bash.exe
). Однако ошибка, которую я получаю, это No such file or directory
:
\\WORKGROUP.EX.COM\Users\user\Downloads\mingw-w64\i686-4.9.3-posix-dwarf-rt_v4-rev1\mingw32\bin\ar.exe: Z:/user/Downloads/MyProjectNameABCDE/someLibraryABC/libs/someLibraryDEFGHI/lib/mingw/obj/Debug/libs/some: No such file or directory
... и указанный путь явно является усеченной версией пути, по которому находятся объектные файлы. Что еще более странно, когда я копирую полную командную строку ar
, напечатанную процессом make
, и вставляю ее обратно в тот же терминал, она завершается без ошибок?
Кто-нибудь знает, почему это происходит, и что я могу сделать, чтобы убедиться, что ar
завершается при вызове из Makefile?