【RTKLIB】RTKLIB 调试,用VS2010

 

 

在vs2010中新建一个win32的控制台项目,将rtk源码放到工程路径下新建文件夹,命名为src。

把rtklib的源文件(src下文件)加入工程。在rc下建立rcv把(rtklibsrc\rcv)下面的文件也添加到工程。

编译工程,发现很多错误。一步步来解决错误:

         

      1.错误(警告)        error C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.   

        加入预编译指令来取消这个错误[_CRT_SECURE_NO_WARNINGS]

         image

 

2.error C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings    x:\xxxx\rtklibhelper\rtklibsrc\stream.c

   错误和上面类似,加入[_WINSOCK_DEPRECATED_NO_WARNINGS ]

 

3.   error C2466: 不能分配常量大小为 0 的数组    x:\xxxx\rtklibhelper\rtklibsrc\rinex.c

 

      这个常量为0,那么不能进行编译,我们想上面一样在预编译器里面加入 ENAGLO

 

4. error C1083: 无法打开包括文件: “rtklib.h”: No such file or directory   

     

image,

 

 5: error LNK2019: 无法解析的外部符号 _settspan,该符号在函数 _postpos 中被引用    x:\xxxx\rtklibhelper\postpos.obj    

error LNK2019: 无法解析的外部符号 __imp__timeGetTime@0,该符号在函数 _tickget 中被引用   x:\xxxx\rtklibhelper\rtkcmn.obj  

 error LNK2019: 无法解析的外部符号 __imp__accept@12,该符号在函数 _accept_nb 中被引用    x:\xxxx\rtklibhelper\stream.obj    

       添加附加库[连接器->输入->附加依赖库]添加winmm.lib, ws2_32.lib

 

image

    

6 : error LNK2019: 无法解析的外部符号 _showmsg,该符号在函数 _convrnx 中被引用   

        showmsg这个函数如果在DLL中,需要自己定义,rtklib里面已经做好了处理需要在预处理器里面加入[DLL]即可。

 

预处理器里面我们添加了

_CRT_SECURE_NO_WARNINGS 
_WINSOCK_DEPRECATED_NO_WARNINGS 
ENAGLO 
DLL

 

  image

 

最后编译成功了!感谢  https://blog.csdn.net/zhangtao_heu/article/details/79536427,参考较大。可加群讨论,页面首部声明。

你可能感兴趣的:(【RTKLIB】RTKLIB 调试,用VS2010)