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-dev
(sudo 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
我正在学习使用 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-dev
(sudo 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