2012-04-10 5 views
1

Я наслаждался роскошью кодирования с помощью IDE, которая пишет мой makefile для меня, Iv решил, что я был «короткой резкой» для долгого времени, поэтому я прочитал несколько руководства и смотрели несколько видеороликов на make-файлах и делали полуфабрикат makefile, единственная проблема, с которой я столкнулась, - я не уверен, как связывать библиотеки.Создание моего собственного файла makefile [Ошибка 255]

CPPS := $(shell ls src/*cpp) 
TEMP := $(subst src/,obj/,$(CPPS)) 
OBJS := $(subst .cpp,.o,$(TEMP)) 
HEADERS := $(shell ls inc/*.h) 
EXEC := bin/testfile 

all: $(EXEC) 

$(EXEC) : $(OBJS) $(HEADERS) 
g++ -I inc/ $(OBJS) -o $(EXEC) -lSDL -lGLU 
$(EXEC) 

obj/%.o: src/%.cpp 
g++ -Wall -I inc/ -c $< -o [email protected] 

пс: просто упаковывают я говорю не то, когда я говорю «Библиотека флаги» Я имею в виду -lSDL -lGLU и т.д. ...

Где бы я их они не похоже на работу.

Это ошибка, я получаю, когда я вставить Lib флаги, make: *** [bin/testfile] Error 255

Ошибка 255 производится по маркам в результате его команда оболочки не в состоянии найти команду для конкретного правила ,

Если я не включаю их, я получаю стандартные сообщения «undefined».

Любая помощь с этим была бы принята с благодарностью! Спасибо

+0

Я не вижу никаких флагов '-l' в выпадающем фрагменте! Сложно следить за такими вещами, как «10-я строка» «последняя строка» –

+0

Извините, все исправлено :) – Elgoog

+0

Можете ли вы также рассказать нам, с какими ошибками вы столкнулись, когда говорите «не похоже на работу»? –

ответ

1

Похоже, вы пытаетесь запустить свой исполняемый файл после его создания?

В этом случае проблема в том, что у вас нет текущего каталога на PATH; поэтому make не может найти $(EXEC).

Возможно, вы должны просто сделать ./$(EXEC), чтобы запустить его напрямую.

И вы должны перенести выполнение программы на другую (PHONY) цель, чтобы вы могли сделать только шаг сборки самостоятельно и запускать, когда $(EXEC) не нужно создавать.

(Я предполагаю, что отсутствие вкладок - это просто форматирование с использованием stackoverflow, так как иначе make будет жаловаться).

+0

Ваш взмах на деньги там! спасибо, правильно ли я связываю библиотеки? Моя программа не работает, но ошибки не отображаются. Но при построении с использованием IDE он работает просто отлично ... – Elgoog

+0

@ Elgoog Я боюсь, что вы не предоставили достаточной информации; Вы сделали изменения, которые я предложил? Я удаляю выполнение программы из Makefile и запускаю ее напрямую - тогда легче увидеть, что происходит. –

Смежные вопросы