我试图执行Makefile,并希望用它来执行一个C程序。首先,我如何在Makefile中包含test.c文件?我已经把makefile直接放在根目录下,因为以后会有其他的.c文件添加进来。有人能帮我执行这个吗?文件结构:
test.c
Makefile代码到目前为止还不工作(如果我把它放在src中,它将工作,但仍然没有得到文件的输出。)
# -o : object file Test: test.c gcc -o Test test.c
很高兴如果有人能帮助或建议什么!
aiqt4smr1#
我通常不关注链接,但我很好奇,所以我这么做了。你的问题与make或makefile或如何构建代码无关。从截图中可以确定的最佳结果,一切都很好。问题是,当您尝试运行该程序时,找不到它。当shell试图运行一个程序时,它会在PATH环境变量中的目录中查找,并且 * 只 * 在那里。它不会在当前目录中查找,除非当前目录在PATH上。因此,当您键入一个不带路径名的程序名来告诉shell在哪里可以找到它时,例如Test(顺便说一下,将程序命名为Test并不是一个好主意,因为POSIX系统上有一个名为test的系统程序,它可能会引起混淆),它将在PATH上的目录中搜索Test,并且如果在那里没有找到该程序,则它将失败。如果你不想依赖PATH,你需要给予shell你想运行的程序的路径名,所以你可以运行.\Test(在POSIX系统上是./Test),告诉shell你想从当前目录运行Test。
PATH
Test
test
.\Test
./Test
1条答案
按热度按时间aiqt4smr1#
我通常不关注链接,但我很好奇,所以我这么做了。你的问题与make或makefile或如何构建代码无关。从截图中可以确定的最佳结果,一切都很好。
问题是,当您尝试运行该程序时,找不到它。
当shell试图运行一个程序时,它会在
PATH
环境变量中的目录中查找,并且 * 只 * 在那里。它不会在当前目录中查找,除非当前目录在PATH
上。因此,当您键入一个不带路径名的程序名来告诉shell在哪里可以找到它时,例如
Test
(顺便说一下,将程序命名为Test
并不是一个好主意,因为POSIX系统上有一个名为test
的系统程序,它可能会引起混淆),它将在PATH
上的目录中搜索Test
,并且如果在那里没有找到该程序,则它将失败。如果你不想依赖
PATH
,你需要给予shell你想运行的程序的路径名,所以你可以运行.\Test
(在POSIX系统上是./Test
),告诉shell你想从当前目录运行Test
。