2.1 编译Bochs
因为Bochs是C++写的,所以要想编译Bochs,就得有编译C++的套件,其实我们常用的就是GNU gcc/g++(Linux平台),Window平台的话MinGW,VC++其实也有,这里就不介绍了,只介绍GNU那套。
编译安装Bochs标准分为三步,configure,make,make install,即配置,编译,安装三步。(以下的命令都在root用户下之下,若执行命令没权限记得给权限)
2.1.1 config
在下载后的源码的根目录中有一个configure文件,该文件是一个脚本文件,进入该源码根目录,运行下面命令
./configure
则会检测本机然后选择最适合本机的配置,当然,也可以自定义配置,可以用以下命令查看具体信息
./configure --help
另外,可以通过设置环境变量的方式设置编译器进行编译时的选项,例如
export CC=egcs
export CXX="$CC"
export CFLAGS="-Wall -O2 -m486 -fomit-frame-pointer -pipe"
export CXXFLAGS="$CFLAGS"
一旦运行configure后,将会在源码根目录创建一个makefile文件(编译配置文件),同时也会创建一个config.h头文件,该头文件中都是类似#define CC = "egcs"这样的预处理语句(其实就是那些编译时的所有选项)。自此配置完成。
官方给了一些各种系统下的最佳示例脚本,这些脚本也在源码的根目录下具体信息如下,也可以根据你的系统选择最佳的示例脚本,然后运行,这些脚本里面就是配置了一些东西,然后去调用configure脚本的
脚本名 | 操作系统 |
---|---|
.conf.linux | Linux (32/64 bit) |
.conf.macosx | MacOS X |
.conf.win32-cygwin | Windows with Cygwin or MinGW/MSYS |
.conf.win32-vcpp | Windows with MSVC (32 bit) |
.conf.win64-vcpp | Windows with MSVC (64 bit) |
.conf.win64-cross-mingw32 | Cross compiling on Linux for Windows |
2.1.2 make
配置完成后,执行如下命令,编译Bochs源码。
./make
关于make命令自己去学习一下,简而言之呢,就是make 命令用于构建或编译软件项目。它通常使用一个名为 Makefile 的文件,其中包含了关于如何编译和链接代码的规则。通过运行 make 命令,它会根据这些规则自动执行编译过程,生成可执行文件或库文件。
2.1.3 make install
编译完成后,执行如下命令,安装编译好后的文件转移到特定地方
./make install
其实就是将可执行文件,文档和其他必需的文件移动到到某些特定的地方,以便所有用户都可以使用它。默认情况下,将文件移动到了/usr/local中的某些目录。以下表显示了目录及其内容。
移动到的/usr/local下的文件夹 | 编译生成的内容 |
---|---|
bin | 二进制文件(bochs,bximage) |
lib/bochs/plugins | 插件文件(假如存在的话) |
man/man1 | 解释bochs命令的用户文档 |
man/man5 | 解释bochs配置的用户文档 |
share/bochs | bios镜像, VGABIOS镜像等 |
share/doc/bochs | HTML文档, 许可证书, readme, 版本的改变, 一些使用样例 |
参考文档
详细的configure的参数请看bochs文档