让NetBeans的C ++解析器与Emscripten一起使用

时间:2014-07-18 21:52:15

标签: c++ netbeans emscripten

我在使用NetBeans的C ++解析器时遇到了一些问题。除了在我的代码中执行std::vectorstd::cout等操作时,一切似乎都能正常工作。如果我离开std::部分,解析器工作正常,但当我有它时,

"Unable to resolve identifier vector."

(或另一个例子中的cout)。任何人都知道为什么会这样做?

其他信息:

我正在使用Netbean 8.我在工具>中有以下设置:选项> C / C ++>构建工具

Build Host:       Localhost
Family:           CLang
Encoding:         UTF-8

Base Directory:   C:\Program Files\Emscripten
C Compiler:       C:\Program Files\Emscripten\emscripten\1.12.0\emcc
C++ Compiler:     C:\Program Files\Emscripten\emscripten\1.12.0\em++
Debugger Command: C:\Program Files\Emscripten\mingw\4.6.2_32bit\gdb.exe
CMake Command:    C:\Program Files\CMake 2.8\bin\cmake.exe

我在工具>中有以下包含路径选项> C / C ++>代码帮助> C ++编译器>包含目录

C:\Program Files\Emscripten\emscripten\1.12.0\system\include
C:\Program Files\Emscripten\emscripten\1.12.0\system\include\libc
C:\Program Files\Emscripten\emscripten\1.12.0\system\include\emscripten
C:\Program Files\Emscripten\emscripten\1.12.0\system\include\libcxx

编辑:

我想出了问题的可能原因。似乎某些LLVM / CLang库使用定义_LIBCPP_BEGIN_NAMESPACE_STD_LIBCPP_END_NAMESPACE_STD (包含在<__config>而不是namespace std;用于某些库,包括{{ 1}}和<iostream>我猜这些是从Netbeans C ++解析器中隐藏的。

我不知道如何解决这个问题。如果我找到了什么,我会报告。

1 个答案:

答案 0 :(得分:1)

我通过添加条目来修复它:

__clang__
工具&gt;中的

选项&gt; C / C ++&gt;代码帮助&gt; C ++编译器&gt;宏定义

这使得Netbeans可以看到_LIBCPP_BEGIN_NAMESPACE_STD_LIBCPP_END_NAMESPACE_STD&#39;解析器并反过来显示vectorcout位于std命名空间中。