首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在c程序中用其它目录输入txt文件生成文件

如何在c程序中用其它目录输入txt文件生成文件
EN

Stack Overflow用户
提问于 2020-03-31 23:47:45
回答 2查看 52关注 0票数 1

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

代码语言:javascript
复制
project/misc/input.txt
project/programms/findlines.c

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

代码语言:javascript
复制
# #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

似乎编译器找不到输入文件,并预测错误“没有这样的文件存在”。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-01 00:03:55

words-10的变量替换应该与makefile中的其他变量(如CCOBJSEXEC)相同:您需要用$(words-10)${words-10}替换对words-10的引用。

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

代码语言:javascript
复制
# #Paths to input files
words-10= ../../misc/words  

#compiler used
CC = gcc 

#Files .o
OBJS = find_lines.o

#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)
票数 2
EN

Stack Overflow用户

发布于 2020-04-01 02:20:40

编辑:这是最终的解决方案,感谢大家的帮助!

fileswords-10 = ../../misc/words #输入路径

CC = gcc #使用的编译器

OBJS = find_lines.o #文件.o

EXEC = find_lines #可执行程序

ARGS =$(Words10)/Words10#参数

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

清理: rm -f $(OBJS) $(EXEC)

运行:time./$(EXEC)< $(ARGS)

valgrind: valgrind ./find_line< $(ARGS)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60954559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档