MinGW编译osip2和eXosip2
sip2 源码下载地址
- libosip2-5.0.0.tar.gz 下载地址:
http://ftp.gnu.org/gnu/osip/libosip2-5.0.0.tar.gz
- libexosip2-5.0.0.tar.gz 下载地址:
http://download.savannah.nongnu.org/releases/exosip/libexosip2-5.0.0.tar.gz
编译环境准备
- QtCreator(MinGW编译器)
- MSYS2(windows 端仿 linux编译环境)
安装 QtCreator
- QtCreator 下载地址:
http://download.qt.io/archive/qt/5.9/5.9.6/qt-opensource-windows-x86-5.9.6.exe
- 安装过程之中,记得选取 MinGW 编译器
- 记下 gcc 编译器的安装位置:
${QtCreator 安装目录}/Tools/mingw530_32/bin
安装和配置 MSYS2
- MSYS2 下载地址:
http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe
- 到 MSYS2 安装目录下运行 mingw32.exe,显示 dos 文本交互界面
- 导入上小节记录下的 gcc 编译器安装位置:
gcc 地址部分,也可通过把 gcc 编译器所在文目录直接拖拽到 dos 文本交互界面进行自动补全
export PATH=$PATH:${QtCreator 安装目录}/Tools/mingw530_32/bin - 安装 pkgconfig 工具,用于自动处理链接库关系
pacman -S pkgconfig
开始进行编译
编译 libosip2-5.0.0
MAKE=mingw32-make ./configure --prefix=`pwd`/../libosip2 --enable-mt=no && mingw32-make install
在 ../libosip2 目录可以看到编译完善的 libosip2 文件,包括 bin、 include、lib、share 四个目录
编译 libexosip2-5.0.0
./configure MAKE=mingw32-make PKG_CONFIG_PATH=/${libosip2 输出路径}/lib/pkgconfig --prefix=`pwd`/../libexosip2 && mingw32-make install
在 ../libexosip2 目录可以看到编译完善的 libexosip2 文件,包括 include、lib、bin 三个目录
5.0.0 版本编译出现的问题
编译 libosip2-5.0.0
运行上述编译指令,出现以下错误:
osip_time.c:113:3: error: unknown type name 'FILETIME' FILETIME lSystemTimeAsFileTime; ^ osip_time.c:114:3: error: unknown type name 'LONGLONG' LONGLONG ll_now; ^
显示 FILETIME 和 LONGLONG 未定义,对应的在 src/osip2/osip_time.c 97行添加 #include <Windows.h>,再次执行上述编译指令,则大功告成!
总结
- c++ 和 c 大部分优秀的开源项目集中于 Linux 平台,掌握编译原生源码是一种必备的生存能力呀!
- gcc 广泛在 Linux 平台使用,在windows 平台也有对应的移植版本 MinGW 呀!
- MSYS2 是一个优秀的 Linux 模拟终端,可方便执行各种 Linux 编译指令呀!
浙公网安备 33010602011771号