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

 编译环境准备

  1. QtCreator(MinGW编译器)
  2. MSYS2(windows 端仿 linux编译环境)

安装 QtCreator

  1. QtCreator 下载地址:
    http://download.qt.io/archive/qt/5.9/5.9.6/qt-opensource-windows-x86-5.9.6.exe
    
  2. 安装过程之中,记得选取 MinGW 编译器
  3. 记下 gcc 编译器的安装位置:
    ${QtCreator 安装目录}/Tools/mingw530_32/bin
    

安装和配置 MSYS2

  1. MSYS2 下载地址:
    http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe
  2. 到 MSYS2 安装目录下运行 mingw32.exe,显示 dos 文本交互界面
  3. 导入上小节记录下的 gcc 编译器安装位置:
    export PATH=$PATH:${QtCreator 安装目录}/Tools/mingw530_32/bin
    gcc 地址部分,也可通过把 gcc 编译器所在文目录直接拖拽到 dos 文本交互界面进行自动补全
  4. 安装 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>,再次执行上述编译指令,则大功告成!

总结

  1. c++ 和 c 大部分优秀的开源项目集中于 Linux 平台,掌握编译原生源码是一种必备的生存能力呀!
  2. gcc 广泛在 Linux 平台使用,在windows 平台也有对应的移植版本 MinGW 呀!
  3. MSYS2 是一个优秀的 Linux 模拟终端,可方便执行各种 Linux 编译指令呀!
posted on 2020-10-22 23:43  VC雄关漫道  阅读(32)  评论(0)    收藏  举报