У меня была эта проблема с Makefile, который я использовал в Windows.Компилятор представляет собой 32-разрядную версию MinGW64-W32.
gcc --version
показывает: gcc (i686-posix-sjlj-rev0, Built by MinGW-W64 project) 5.1.0
make --version
показывает: GNU Make 3.81
Я писалMakefile, который должен был включать в себя измененные каталоги (т. е. каталоги include для 32-битного компилятора отличаются от каталогов include для 64-битного компилятора).Мне нужно было включить что-то вроде: -IC:/Program Files (x86)/mingw-w64/gtk+-3.6.4_win32/include/gtk-3.0
Например.У меня была та же проблема, когда я пытался скомпилировать, компилятор выдает ошибку (в строке 0 или что-то в этом роде. Мое решение было простым. Мне просто нужно было использовать двойные кавычки, например:
-I"C:/Program Files (x86)/mingw-w64/gtk+-3.6.4_win32/include/gtk-3.0"
Использование двойных кавычек сработало. Это позволило мне успешно скомпилировать мою программу.
Примечание здесь. Обычно в Linux для каталога с пробелами нам нужно что-то вроде:
-I"C:/Program\ Files\ (x86)/mingw-w64/gtk+-3.6.4_win32/include/gtk-3.0"
с пробелом \ перед. В Makefile , если я использую \ для пробелов, с двойной кавычкой, программа не компилируется. Я считаю, что Makefile считает, что на самом деле это часть имени каталогов, когда я использую двойные кавычки.
Для вашего кода попробуйте что-то вроде:
.PHONY: all
all: /Users/wu/qqaa/homepage\ 1\ 2\ 3/icons\ (a-b)
@tar cjvf 1.tar.bz2 --exclude=*~ "/Users/wu/qqaa/homepage 1 2 3/icons (a-b)"
Если это не такt, затем попробуйте что-то вроде:
.PHONY: all
all: /Users/wu/qqaa/homepage\ 1\ 2\ 3/icons\ (a-b)
@tar cjvf 1.tar.bz2 --exclude=*~ "/Users/wu/qqaa/homepage\ 1\ 2\ 3/icons\ (a-b)"
В любом случае, удачи.