Точечная наклонная черта вынуждает файл быть найденным в текущем каталоге только, вместо того, чтобы дополнительно искать пути, упомянутые в установке include_path.
Является ли приложение, которое вы пытались запустить, приложением Windows (включая mingw) или приложением Cygwin?
ARG_MAX определяет длину командной строки. Обычно он устанавливается ОС, и все приложения ограничены этим, но в приложениях Cygwin, скомпилированных для Cygwin, может использоваться больший буфер, чем в приложениях Windows - см. это сообщение для примера обсуждения.
Если вы необязательно требовать, чтобы все файлы были аргументами одновременно, вы можете использовать xargs для разделения имен файлов на блоки, которые соответствуют ARG_MAX:
echo **/*.h | xargs ./a.out
Я скомпилировал ваш код и выполнил его в текущем каталоге аналогичным образом, и он работал нормально, без сообщений об ошибках. Также я наткнулся на это сообщение, отправленное кем-то, предполагающим, что сообщение об ошибке «слишком длинный список аргументов» не существует в исходном коде для zsh, поэтому на самом деле это может быть проблема ОС: http://www.zsh.org/ mla / worker / 1996 / msg00060.html