面试题答案
一键面试Linux 下
- 环境配置:
- 通常Linux系统默认已安装基本的开发工具,若没有安装GCC等编译工具,可通过包管理器安装,例如在Ubuntu系统下执行
sudo apt - get install build - essential
。 - 安装libevent库,在Ubuntu下可以使用
sudo apt - get install libevent - dev
,在CentOS下可以用sudo yum install libevent - devel
。
- 通常Linux系统默认已安装基本的开发工具,若没有安装GCC等编译工具,可通过包管理器安装,例如在Ubuntu系统下执行
- 库的引入:
在代码中使用
#include <event2/event.h>
等相关头文件引入库。例如:
#include <event2/event.h>
#include <stdio.h>
int main() {
struct event_base *base;
base = event_base_new();
if (!base) {
printf("Could not initialize libevent!\n");
return 1;
}
event_base_free(base);
return 0;
}
编译时链接库,如gcc -o test test.c -levent
。
Windows 下
- 环境配置:
- 首先需要安装一个C/C++编译器,如MinGW或Visual Studio Community Edition(带有C++开发工具)。
- 下载libevent库的Windows版本(预编译库或源码)。如果是预编译库,解压后将其包含目录添加到项目的包含路径,将库文件(.lib)添加到项目的库路径。如果是源码,需要使用编译器编译生成库文件。
- 库的引入:
在代码中同样使用
#include <event2/event.h>
引入头文件。例如:
#include <event2/event.h>
#include <stdio.h>
int main() {
struct event_base *base;
base = event_base_new();
if (!base) {
printf("Could not initialize libevent!\n");
return 1;
}
event_base_free(base);
return 0;
}
在Visual Studio中,需要在项目属性 - 链接器 - 输入 - 附加依赖项中添加libevent.lib
等相关库文件;在MinGW下编译时,使用gcc -o test test.c -levent
类似的命令(确保库文件路径已正确设置)。
不同点总结:
- 环境配置:Linux主要通过包管理器安装开发工具和libevent库,而Windows需要手动安装编译器和处理libevent库(下载、解压、设置路径等)。
- 库引入及编译:虽然代码中引入头文件方式类似,但编译链接时,Windows在不同编译器下有不同设置方式(如Visual Studio设置项目属性,MinGW使用命令行),Linux相对统一使用命令行编译链接。