如何在Linux上为gcc创建简单的makefile

如何在Linux上为gcc创建简单的makefile,c,gcc,makefile,C,Gcc,Makefile,我有两个文件:mycode.c和mycode.h gcc-o mycode mycode.cpkg配置--cflags--libs libstrophe-lpthread 我需要在Linux上使用gcc compile和推荐行gcc-o mycode mycode.c pkg config--cflags--libs libstrophe-lpthread来编译这个文件 {thing}{colon} {dependencies ...} <tab>{command} {thing}

我有两个文件:
mycode.c
mycode.h

gcc-o mycode mycode.c
pkg配置--cflags--libs libstrophe
-lpthread
我需要在Linux上使用gcc compile和推荐行gcc-o mycode mycode.c pkg config--cflags--libs libstrophe-lpthread来编译这个文件

{thing}{colon} {dependencies ...}
<tab>{command}
{thing}{colon}{dependencies…}
{command}
一些需要注意的事情:

  • 确保您的命令生成{thing}
  • 确保所有命令都以选项卡开头
  • 确保所有依赖项都是磁盘上的文件,尽量使它们保持最新和完整
  • 每个命令都在自己的shell中运行
  • 一个空行打破了这个模式
还有更多,但这会让你开始

这是您请求的生成文件

mycode.o: mycode.c mycode.h
<tab>gcc `pkg-config --cflags libstrophe` -c mycode.c

mycode: mycode.o
<tab>gcc -o mycode `pkg-config --cflags --libs libstrophe` -lpthread mycode.o
mycode.o:mycode.c mycode.h
gcc`pkg config--cflags libstrophe`-c mycode.c
mycode:mycode.o
gcc-o mycode`pkg config--cflags--libs libstrophe`-lpthread mycode.o

请注意,您没有按字面意思键入
,而是将其替换为制表符。

Makefile语法由几个模式组成

{thing}{colon} {dependencies ...}
<tab>{command}
{thing}{colon}{dependencies…}
{command}
一些需要注意的事情:

  • 确保您的命令生成{thing}
  • 确保所有命令都以选项卡开头
  • 确保所有依赖项都是磁盘上的文件,尽量使它们保持最新和完整
  • 每个命令都在自己的shell中运行
  • 一个空行打破了这个模式
还有更多,但这会让你开始

这是您请求的生成文件

mycode.o: mycode.c mycode.h
<tab>gcc `pkg-config --cflags libstrophe` -c mycode.c

mycode: mycode.o
<tab>gcc -o mycode `pkg-config --cflags --libs libstrophe` -lpthread mycode.o
mycode.o:mycode.c mycode.h
gcc`pkg config--cflags libstrophe`-c mycode.c
mycode:mycode.o
gcc-o mycode`pkg config--cflags--libs libstrophe`-lpthread mycode.o

请注意,您没有按字面意思键入
,而是将其替换为制表符。

我认为您在生成
mycode
的命令上缺少了一个倒勾。另外,我认为
pkg config--cflags libstrophe
需要转到
mycode.o
的配方,因为这应该提供包含路径。我们可以将
pkg config--libs libstrophe
留在
mycode
@thurizas的配方中,谢谢!我真的很感激!希望我的更改没有出现其他错误,而是包含了您的建议。我认为您在制作
mycode
的命令上缺少了一个右勾。另外,我认为
pkg config--cflags libstrophe
需要转到
mycode.o
的配方,因为这应该提供包含路径。我们可以将
pkg config--libs libstrophe
留在
mycode
@thurizas的配方中,谢谢!我真的很感激!希望我的改动能采纳你的建议,不会再犯错误。