LINUX.ORG.RU

не работает Makefile(или make)


0

1

g++ -o prog.exe prog.o $(OBJETS)/{Object1.o,Object2.o}

Работает в терминале, а если в make, то выдает:

g++ -o prog.exe prog.o /{Object1.o,Object2.o}
g++: error: /Object1.o: No such file or directory
g++: error: /Object2.o: No such file or directory
make: *** [prog.exe] Error 1

В универе все работало. Там вроде последняя суся и tsch, дома арч и баш.



Последнее исправление: Trieforce (всего исправлений: 1)
Ответ на: комментарий от Trieforce

То есть, ты хочешь сказать, что виноват баш?

CYB3R ★★★★★
()
Ответ на: комментарий от Trieforce

Пропиши вместо переменной путь. Костыль, конечно, но работать будет точно. Или подожди, пока гуру придут.

CYB3R ★★★★★
()

Например [Makefile][синтаксис] проблемы с двуязычием
И вообще, поиск по форуму в темах, содержащих makefile(вот кстати теперь кажись добавили фичу фильтрации по разделам, или оно и раньше было, но я не замечал), найдёшь там примеры makefile'ов.

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

Воторяю... мекфайл работал в университе. Там последний openSuse. Тут он игнорирует enviroment variable. Как это по русски будет...

Trieforce
() автор топика
Ответ на: комментарий от gman
$ cat .bashrc
alias update='yaourt -Syua --noconfirm'
export HISTCONTROL=ignoreboth:erasedups
export OBJETOS_CPP='/home/alex/.config/objetos'
export INCLUDES_CPP='/home/alex/.config/includes'
$ cat Makefile
pro2_s8.exe: pro2_s8.o 
	g++ -o pro2_s8.exe pro2_s8.o $(OBJETOS_CPP)/{Cubeta.o,Prenda.o,Lavadora.o}

o2_s8.o: pro2_s8.cpp
	g++ -c pro2_s8.cpp -I$(INCLUDES_CPP)
clean:
	rm *.o
	rm *.exe
$ ls $INCLUDES_CPP
Arbre.hpp	    Cubeta.hpp	   Lavadora.hpp       Palabra.hpp  Prenda.hpp
Cjt_estudiants.hpp  Estudiant.hpp  ListaPalabras.hpp  Poli.hpp	   utils.PRO2
$ ls $OBJETOS_CPP
Cjt_estudiants.o  Estudiant.o  Lavadora.o	Palabra.o  Prenda.o
Cubeta.o	  glibc        ListaPalabras.o	Poli.o
$ make
g++    -c -o pro2_s8.o pro2_s8.cpp
In file included from pro2_s8.cpp:13:0:
Prenda.hpp:8:22: fatal error: utils.PRO2: No such file or directory
compilation terminated.
make: *** [pro2_s8.o] Error 1
Trieforce
() автор топика
Ответ на: комментарий от Trieforce

Только поправил в одном файле o2_s8.o на pro2_s8.o и оно вдруг заработало... и в другом где все в порядке было тоже... я ебу.

Trieforce
() автор топика

Ну, вашу мать...

Переменная перед /{Object1.o,Object2.o} пуста.

$(OBJETS) [$(OBJE*C*TS) ?] как она создаётся в Makefile?

anonymous
()

Тупой вопрос, но всё же: регистр в именах файлов соблюдён?

static_lab ★★★★★
()

>g++ -o prog.exe prog.o $(OBJETS)/{Object1.o,Object2.o}

А кто сказал, что make должен понимать расширения баша?

annulen ★★★★★
()

Ну и вообще мейкфайлы так писать не нужно. Делай правила для компиляции объектов (через паттерн, например), и отдельно правило для линковки

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.