VS2015编译rtklib2.4.2

Posted QKSword

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

  • 最后再编译就成功了。

 

以上是关于VS2015编译rtklib2.4.2的主要内容,如果未能解决你的问题,请参考以下文章

在vs2015编译器中如何定义数组以及给数组直接赋值,语言vb

在 VS2015 中使用 cl 编译器的 C vs C++

用vs2015写c++,编译报错项目已过期,怎么回事?

使用VS2015编译并设置OpenCasCade工程

cmake:VS2015和GCC编译cJSON

OSRM-VS2015编译