如何在c程序中使用来自另一个目录的输入txt文件制作文件

问题描述 投票:0回答:2

我正在尝试创建一个makefile,该makefile使用来自不同目录中的txt文件的输入来执行。我的苦恼是这样的:

project/misc/input.txt
project/programms/findlines.c

到目前为止我的makefile是这样的:

# #Paths to input files
 words-10= ../../misc/words  

#compiler used
CC = gcc 

#Files .o
OBJS = find_lines.o words-10

#Executable programm
EXEC = find_lines

#Parameters
ARGS =

$(EXEC): $(OBJS)
    $(CC) $(OBJS) -o $(EXEC) $(LDFLAGS)

clean:
    rm -f $(OBJS) $(EXEC)

run:
    time ./find_lines < words-10

valgrind:
    valgrind ./find_lines < words-10

似乎编译器未找到输入文件,并且投射了错误“不存在这样的文件”

c makefile directory
2个回答
1
投票

words-10的变量替换应与makefile中其他变量(例如CCOBJSEXEC)相同:您将要用words-10或[替换对$(words-10)的引用C0]。

此外,您可能不希望它包含在${words-10}中,因为它看起来不像您想要传递给OBJS进行链接的文件。

gcc

0
投票

编辑:这是解决方案的结局,谢谢大家的帮助!

输入文件的路径

words-10 = ../../ misc / words

使用的编译器

CC = gcc

文件.o

OBJS = find_lines.o

可执行程序

EXEC = find_lines

参数

ARGS = $(words-10)/ words-10

$(EXEC):$(OBJS)$(CC)$(OBJS)-o $(EXEC)

干净:rm -f $(OBJS)$(EXEC)

运行:时间./$(EXEC)

valgrind:valgrind ./find_lines

© www.soinside.com 2019 - 2024. All rights reserved.