gpt4 book ai didi

c - 使用 make 命令获取字符串输入以用作 C 程序中的主要参数

转载 作者:太空宇宙 更新时间:2023-11-04 06:17:19 24 4
gpt4 key购买 nike

我在使用 makefile 命令获取用户输入时遇到问题。我需要的是询问用户 TXT 文件的名称(位于 ./data/),然后使用该文件的路径作为我的主 C 程序的参数。

编写代码:

launch-app-conway: app-conway
@read -p "Enter file name: " FILENAME
FILEPATH = "./data/"
FILEPATH += FILENAME
./main-program FILEPATH

它输出“文件路径:找不到命令”。

感谢您的帮助!

最佳答案

你这里有很多问题。首先,您根本没有使用变量。值 FILENAME 只是一个文本字符串,一个字面词 FILENAME。它不是变量引用。

其次,您似乎试图在您的 makefile 配方中使用 make 变量赋值等。 makefile 配方(由 TAB 字符缩进的部分)被传递到 shell,您必须使用 shell 语法(例如 shell 中没有 += 赋值)。

第三,makefile 配方中的每个逻辑行都被传递到不同的 shell,并且在 shell 退出时在 shell 中进行的变量赋值会丢失,因此即使变量引用正确并且您使用正确的 shell 语法来构造变量 FILEPATH,它将是空的,因为它是在不同的 shell 中构造的。

你可以用这个做你想做的事:

launch-app-conway: app-conway
@read -p "Enter file name: " FILENAME; \
./main-program "./data/$$FILENAME"

但是,请注意,如果您尝试使用 -j 运行此 makefile,它可能无法正常工作,因为您的配方可能无法访问标准输入。

关于c - 使用 make 命令获取字符串输入以用作 C 程序中的主要参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42762621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com