在这一步中,你将针对你的特定系统配置源代码,然后将其编译成可执行程序。这是在 Linux 系统上从源码构建软件的标准两步走流程。
首先,你需要将当前位置切换到上一步创建的目录中。使用 cd 命令进入 pure-ftpd-1.0.50 目录。
cd ~/project/pure-ftpd-1.0.50
现在你已进入源代码目录,流程的第一部分是运行 configure 脚本。该脚本会检查你的系统是否具备构建软件所需的所有必要工具、库和依赖项。然后它会生成一个 Makefile,其中包含了编译过程的指令。
要运行该脚本,必须在名称前输入 ./。这会告诉 Shell 在当前目录中查找 configure 脚本。
./configure
脚本将运行一系列检查,你会看到大量输出滚动显示。这是正常现象。成功的运行将以摘要结束,类似于下面的内容。
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
...
checking for OpenSSL... no
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating man/Makefile
...
config.status: executing depfiles commands
Pure-FTPd has been configured.
请注意 config.status: creating Makefile 这几行。这确认了 Makefile 已成功创建。
流程的第二部分是编译代码。make 命令读取 Makefile 并运行编译器(如 gcc),配合正确的选项将人类可读的源代码(.c 文件)转换为机器可执行的二进制文件。
现在,运行 make 命令。
make
这个过程可能需要片刻时间。当 make 为每个源文件调用编译器时,你会看到许多行输出。这就是实际发生的编译过程。
(CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/labex/project/pure-ftpd-1.0.50/config/missing automake-1.15 --gnu src/Makefile)
...
gcc -g -O2 -Wall -W -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -c pure-ftpd.c
...
gcc -g -O2 -Wall -W -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -o pure-ftpd pure_ftpd-pure-ftpd.o pure_ftpd-log.o ...
...
make[1]: Leaving directory '/home/labex/project/pure-ftpd-1.0.50/src'
一旦 make 命令无错误完成,软件就成功编译好了。二进制文件现在已准备好安装到系统中,你将在下一步进行此操作。