g ++ не компилируется с подстановочными именами в Windows

Внезапно мне кажется, что мне приходится бороться с компиляцией программ на c ++ (в частности, TDM64 5.1.0) из командной строки в Windows (в частности, 10) при использовании имен файлов с подстановочными знаками. Работает нормально, когда имена даны полностью. Я делал это бесчисленное количество раз без проблем Изменить: Но обычно не на окнах … мои воспоминания об этой работе, прежде чем должны быть ложными. Что мне не хватает?

C:\Users\Duncan Coulter\Code>dir *.cpp
Volume in drive C has no label.
Volume Serial Number is 9EE6-DBBD

Directory of C:\Users\Duncan Coulter\Code

2016/04/04  01:35 PM             7 869 LittleMan.cpp
2016/04/04  01:35 PM             1 912 main.cpp
2 File(s)          9 781 bytes
0 Dir(s)  90 288 394 240 bytes free

C:\Users\Duncan Coulter\Code>g++ *.cpp
g++: error: *.cpp: Invalid argument

C:\Users\Duncan Coulter\Code>g++ main.cpp LittleMan.cpp

1

Решение

Ваша проблема в том, где вы пишете:

g++ *.cpp

g++ это программа в стиле linux, и она ожидает, что оболочка расширит символы подстановки для нее. Командная оболочка Windows этого не делает — она ​​ожидает, что отдельные программы будут расширять символы подстановки для себя.

Самое простое решение — загрузить Cygwin, который расширяет шаблоны для вас. В противном случае ответы на этот вопрос могут быть полезны:

https://superuser.com/questions/460598/is-there-any-way-to-get-the-windows-cmd-shell-to-expand-wildcard-paths

3

Другие решения

Отмечу, что TDM основан на порте MINGW GCC. Я обнаружил, что разные версии этого компилятора на самом деле обрабатывают подстановочный знак по-разному. Например, он отлично работает для меня с версии 3.4.2, компилируемой в Windows 7:

GCC v.3.4.2 компиляция с подстановочным знаком в Windows 7

Однако при обновлении до GCC v.4.9.2 этот пакетный файл и другие файлы, которые я использовал, сломались (в частности, * .cpp не был распознан). Это была версия MINGW GCC, поставляемая с Dev-C ++ IDE. Поскольку эта функция мне очень нужна (в частности, тестовая компиляция больших представлений студенческого кода с неопределенными случайными именами файлов), мне фактически пришлось понизить версию и вернуться к старой версии именно для этой цели.

1

По вопросам рекламы [email protected]