标识符"__builtin_expect"未定义(在 ROS 期间 win 教程说话者示例)

identifier "__builtin_expect" is undefined (during ROS on win tutorial-talker example)

本文关键字:教程 说话者 win 期间 expect builtin 未定义 标识符 ROS      更新时间:2023-10-16

我正试图在Visual Studio 2015中完成Windows上ROS的第一个教程。

首先,我创建了一个新的WIN 32控制台应用程序,并从这里复制了代码。然后,我按照指南中的描述配置了该项目。调试时出现了几个错误:

  • 文件service_client.hTestTalker.cpp中未定义标识符"__builtin_expect"(这是我的程序名称)
  • 无法打开源文件"sys/time.h">

wiki.ros.org中的SDK运行,我对它进行了测试。我不知道怎么了。我希望有人能帮助我。

提前感谢!!

__builtin_expect是GCC扩展。它不是由Visual Studio提供的。

由于它只为编译器提供了一个优化CPU分支预测的提示,因此可以用expr替换__builtin_expect(expr, c)的所有实例。

或者,在合适的情况下,使用__present代替,如本答案中所述