VS2015编译rtklib2.4.2

准备工作

  •   在VS2015下新建一个win32的dll项目(空项目)

 

  • 把在github上下载的rtklib2.4.2里的src文件夹复制到刚刚建立的win32下

  • 把src里的文件添加到项目里,其中头文件添加rtklib.h(在src里)

 

 开始编译

 现在可以进行编译了,因为rtklib是在Borland C++编译器下写的,但是我们现在用VS进行编译,会出现一堆的错误,现在我们就一个个来解决。

  •  这是由于函数安全性问题,编译器已经给出建议,添加预编译指令_CRT_SECURE_NO_WARININGS。我们打开调试下的项目属性,然后在配置属性 -> C/C++ -> 预处理器 -> 预处理器定义 -> 编辑。在下面添加上_CRT_SECURE_NO_WARININGS

 

 

  •  这个也是添加预编译指令来去除错误。位置和上面一样。在预处理器定义里添加_WINSOCK_DEPRECATED_NO_WARNINGS

 

 

  • 不能分配常量大小为0的数组。也是在预处理器定义里添加定义ENAGLO

  • rcv里的文件找不到rtklib.h这个头文件。我们继续在项目属性里,在配置属性 -> C/C++ 常规 -> 附加包含目录 -> 编辑 。在上面添加rtklib.h的绝对路径(在项目里的src找到rtklib.h并查看它的绝对路径)

  • 提示未初始化本地指针变量的错误,双击错误找到这个错误的位置,然后往上找到定义变量sbs的位置,给指针初始化赋值NULL

  • 编译后发现了20个莫名的错误,我们找到之前预处理器定义处,在下面添加DLL,再找到项目属性,在配置属性 -> 链接器 -> 输入 -> 附加依赖项里添加 winmm.lib 和 ws2_32.lib

  • 最后再编译就成功了。

谦谦君子,卑以自牧
原文地址:https://www.cnblogs.com/QKSword/p/8146046.html