Link 使用 SDL 库的 makefile

Link a makefile for using SDL librarie

我正在学习使用 SDL 库和一个法语站点。 这是教程:

“可能有些人已经养成了使用 Makefile(控制编译的文件)在 Linux 下手动编译的习惯。 如果是这种情况,我邀请您下载一个 Makefile,您可以使用它来编译 SDL 项目。

唯一有点特别的是为链接器添加了 SDL 库 (LDFLAGS)。您必须下载 Linux 版本的 SDL 并将其安装在您的编译器文件夹中

我在 /usr/bin/gcc 找到了我的 gcc 文件夹,但是当我想将 makefile 移动到这个文件夹时,错误是:

mv: cannot move 'makefile_sdl' to '../usr/bin/makefile_sdl': Permission denied

这是我的 make 文件,可能有问题或遗漏了(我是初学者啊哈)

CPP=gcc    #compiler command
CFLAGS=-O3 #Option d'optimisation du programme
LDFLAGS=-lSDL -lSDL_mixer #Linker
EXEC=nomProgramme  #Nom du programme à modifier

all: ${EXEC}

${EXEC}: ${EXEC}.o
       ${CPP} $(CFLAGS) -o ${EXEC} ${EXEC}.o ${LDFLAGS}

${EXEC}.o: ${EXEC}.c
       ${CPP} $(CFLAGS) -o ${EXEC}.o -c ${EXEC}.c

您不需要(也不应该)将 makefile 移动到 /usr/bin

你可以把它放在任何地方,但如果它和你的源代码在同一个目录中,事情会更容易 (nomProgramme.c)。

您需要将 Makefile 命名为 Makefile。区分大小写,确保检查拼写错误等。当您 运行 make.

时,您还需要与 Makefile 在同一目录中

你也应该 运行 make 没有任何指定的目标。它将自动构建 all 目标,这会将您的程序构建为名为 nomProgramme.

的可执行文件

您还需要安装 libsdl-mixer1.2-devsudo apt-get install libsdl-mixer1.2-dev 并将 EXEC=main 改回 EXEC=nomProgramme

这是 GNU make 文档的 link。它提供了一个快速概述,然后非常详细地解释了您可以使用 GNU make 所做的一切:https://www.gnu.org/software/make/manual/make.html

回答 OP 问题:

目录 /usr/bin 不能通过用户(比如你自己)写入。

但是,执行前缀为 sudo 的命令行(为您提供 'root' 权限)将使您能够写入该目录。

但是,/usr/bin 用于可执行文件,Makefile_sdl 不是可执行文件

建议保存那个文件'somewhere'然后当你想使用那个makefile时,把它复制到你当前项目所在的目录(即你想要运行make

但是,Makefile_sdl 不是 make 识别的标准文件名之一,因此必须 运行 make 通过:

make -f Makefile_sdl