【问题标题】:Running make run 2 times on a makefile在 makefile 上运行 make run 2 次
【发布时间】:2013-05-21 20:34:01
【问题描述】:

我正在运行一个两个可执行的 makefile,我遇到了这个问题: 每次我执行 make run(启发式或 otimo)时,它都会运行 otimo,然后运行我说过要运行的 exe(如果我选择 otimo,它会运行 2 次)。 我正在使用 Linux(Kubuntu 12.10)。 我想单独使用 make run,如果我选择运行一个,我不想运行另一个或类似的东西。有人可以帮我吗? Makelfile 代码:

# 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

感谢您对此的任何帮助!

【问题讨论】:

    标签: linux makefile executable


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多