2013-05-21 1 views
1

Я запускаю два makefile-файла makealble, и у меня возникла эта проблема: Каждый раз, когда я делаю make run (heuristica или otimo), он запускает otimo, а затем запускает exe. сказал, чтобы бежать (если я выбираю otimo, тогда он работает 2 раза). Я использую Linux (Kubuntu 12.10). Я хочу использовать make run отдельно, и если я захочу запустить его, я не хочу запускать другое или что-то в этом роде. Может ли кто-нибудь помочь мне в этом? Makelfile код:Запуск make run 2 раза в make-файле

# Lista dos objetos: 
OBJS = main.o grafo.o circulo.o arquivos.o Lista.o 

# Nome dos executáveis: 
MAIN1 = tp2h 
MAIN2 = tp2o 

# Argumentos para execução dos programas: 
ARGS = input.txt output.txt 
ARGS2 = input.txt output.txt 

# Especifica o compilador: 
CC = gcc 

# Especifica as opções do compilador: 
CFLAGS = -Wall -pg -g3 

# Compilação dos programas: 
all: $(MAIN1) $(MAIN2) 

$(MAIN1): $(OBJS) 
    @$(CC) $(CFLAGS) $(OBJS) -lm -o $(MAIN1) 
$(MAIN2): $(OBJS) 
    @$(CC) $(CFLAGS) $(OBJS) -lm -o $(MAIN2) 
%.o: %.c %.h 
    @$(CC) $(CFLAGS) $< -c 

# Execução dos programas: 

run heuristica: 
    ./$(MAIN1) $(ARGS) 
run otimo: 
    ./$(MAIN2) $(ARGS2) 

# Remoção dos objetos pré-compilados: 
clean: 
    rm *.o 

Спасибо за любую помощь в этом!

ответ

1

Проблема в том, что это несколько слов «цели», которые вы используете. Цели Makefile должны быть одним словом. Чтобы исправить, вы можете либо вывести «бег» из цели. Или вы можете использовать подчеркивание вместо пробела.

Пример 1:

# Execução dos programas: 

heuristica: 
    ./$(MAIN1) $(ARGS) 
otimo: 
    ./$(MAIN2) $(ARGS2) 

Пример 2:

# Execução dos programas: 

run_heuristica: 
    ./$(MAIN1) $(ARGS) 
run_otimo: 
    ./$(MAIN2) $(ARGS2) 
+0

О, спасибо! Теперь его работы. –

+0

Добро пожаловать. Рад, что он работает. – mattc

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