c++ - 让 NetBeans 的 C++ 解析器与 Emscripten 一起工作

标签 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;对于一些图书馆,包括 <iostream><vector>我猜这些是隐藏在 Netbeans C++ 解析器中的。

我还不确定如何解决这个问题。如果我发现了什么,我会报告。

最佳答案

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

__clang__

工具 > 选项 > C/C++ > 代码帮助 > C++ 编译器 > 宏定义中

这使得 _LIBCPP_BEGIN_NAMESPACE_STD_LIBCPP_END_NAMESPACE_STD 对 Netbeans 的解析器可见,并反过来显示 vectorcoutstd 命名空间中。

关于c++ - 让 NetBeans 的 C++ 解析器与 Emscripten 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24834330/

相关文章:

c++ - 如何在循环中使用更少的 CPU?

java - 运算符 == 不能应用于 java.lang.String char

c++ - 如何链接 netbeans (linux) 中的库?

C++ 异常抛出/捕获优化

c++ - 调试多线程应用程序时的步骤行

c++ - .(点)访问静态方法

java - netbeans java代码审查插件

javascript - 如何使用 javascript 库将 Socket.io 与 emscripten 一起使用?

python - 安装emscripten需要什么版本的python?

javascript - emscripten 代码缺乏巨大的性能