当前位置:网站首页>rtklib2.4.3 b34的一个与编译器有关的bug

rtklib2.4.3 b34的一个与编译器有关的bug

2022-06-23 03:53:00 奔跑的橘子

最近在使用rtklib时遇到一个问题,困扰了许久,最后总算用歪门邪道的方式解决了。

issue如下

  1. 重新基于rtklib的代码编译一个application,解算数据,一切正常。
  2. 下一步,将rtklib中的trace去掉,再编译,解算。好的,问题出现,不能解算了。

是真的将所有trace去掉,不是将level设置为0,或者将trace name设置为空,或者将函数体注释掉。这些方式并不能真正去掉trace,并且这些情况重新编译的话,是可以正常解算的。为什么这些方式不能真正去掉trace?因为,这些方法并不能去掉函数的调用,函数调用时,会计算函数参数,这些非常耗时!而这些操作没有意义。

如何解决呢

  1. 首先,是不能通过打trace解决的,因为如果打开trace,即便把函数体注释掉,什么也不做,程序依然是正常运行的
  2. 能不能通过debug呢?不能。经过尝试,debug版本是正常运行的。
  3. debug版本在很多情况下与release结果不一致,这也正常。没什么好奇怪的。不展开讲了。
  4. 换个编译器是否可以呢?还真可以了。。。
    通过将编译器从vc++14.0 (对应Visual Studio 2015)换为MinGW。真的可以了。

还没有细看原因,有查过的欢迎共享。

原网站

版权声明
本文为[奔跑的橘子]所创,转载请带上原文链接,感谢
https://xiaoqiang666.blog.csdn.net/article/details/114175121