使用 C++ unit_test_framework语法检查失败的 Eclipse 和 Boost

eclipse and boost unit_test_framework failing syntax check using c++

本文关键字:失败 Eclipse 检查 Boost 语法 C++ unit test framework 使用      更新时间:2023-10-16

>我有以下问题。我开始使用 boost 库版本 1.40 进行单元测试。由于其他一些从事该项目的人并没有所有人都在使用 eclipse,因此该程序必须可以使用 makefile 进行编译。所以我们用cmake来生成一个。好消息是,测试正在构建并且工作正常。

但问题是,当使用 eclipse(创建一个 c++ makefile 项目)时,它会抱怨几个语法错误(在源代码视图中)。像这样:

BOOST_AUTO_TEST_CASE( my_test ) { some code }将被 Eclipse 检测为语法错误。在 IDE 中出现所有这些错误消息真的很烦人。由于在第一行之后,some code块中的几乎每一行都被标记为具有语法错误。

所以这是我已经尝试过的:

  • 我在 GNU C++路径选项中添加了 '/usr/include/boost/'。(属性->C/C++常规->路径和符号->路径)。这通常适用于 cmake 文件中 FindPkgConfig 中包含的其他外部库。以便 eclipse 中的自动完成可以找到正确的类和函数名称。
  • 同样的方式直接包含"/usr/include/boost/test/"。
  • 将"/usr/lib/libboost_unit_test_framework.so.1.40.0"添加到"库"列表中。
  • 将"/usr/lib"添加到库路径。

所以任何人都有提示如何教日食提升宏的语法是正确的??

更新
我忘了:
系统是Linux,Eclipse版本是3.6.1,CDT版本是:
版本: 1.0.0.201009141542
内部版本号:201009141542

我没有解决方案,但也许是一个提示。我有一个类似的设置,它完美地工作,直到......我记得的唯一相关更改是我更改了测试套件的名称。所以(可能)在那之后,语法高亮变得疯狂。我尝试索引和刷新,但没有帮助。我什至看不到宏扩展,因为语法错误阻止它弹出。

我的猜测是 - 仍然是 - 一些索引问题,因为它以前有效并且我没有更改任何包含路径。它的编译没有问题,但它在整个文档中都出现了这些黄色语法错误标记,这真的非常非常烦人。

但是,这可能不是路径问题,因为它以前对我有用。

我只是使用 Eclipse Helios 自己做的,它确实对我有用......

你不应该添加/usr/include而不是/usr/include/boost,因为boost是程序中使用的包含路径的一部分?

例如,如果您也包含 boost 文件夹,<boost/unit_test.hpp>只是<unit_test.hpp>

这是我在 GNU c++ 包含目录下添加的内容:

/usr/local/include //this is where I store the boost folder
/usr/include/c++/4.5.2 //This was needed since not even <map>, <vector> etc would resolve in eclipse.
智能

感知和自动完成C++几乎不可能在所有情况下都正确。如果 Boost.Test 中使用的许多宏混淆了 Eclipse,那么也许你应该找到一个更干净的单元测试库。我可以推荐 Catch,它具有更干净、更友好的语法,仅是标头,因此更容易设置,并且不依赖于宏。它正在由另一个SO用户积极开发。

我也遇到了这个问题(但在Mac系统上)。一旦我添加了 GNU C++路径选项的提升路径,我重新启动了我的操作系统,Eclipse 不再BOOST_AUTO_TEST_SUITE标记为错误。