在尝试构建C++程序时接收错误消息"带有C链接的模板"

Amr*_*zam 0 c++ gcc codeblocks mingw32

我正在尝试使用CodeWlocks使用Mingw构建一个c ++程序我从STL库文件中收到错误,例如stl_uninitalized.h和vector.cc

__CODE__

Gre*_*reg 9

您可能正在使用范围extern "C"表示法并在该范围内包含C++代码.例如:

#ifdef __cplusplus
extern "C" {
#endif

#include <vector> // could generate this error

template <typename T> // would also generate this error
struct MyExample
{
    T data;
};

#ifdef __cplusplus
}  // end extern "C"
#endif
Run Code Online (Sandbox Code Playgroud)

您通常应该extern "C"完全避免区域内的包含,因为这可能导致多个声明,否则将是相同的符号.

当与C代码进行交互时,有一些特殊的例外情况,这些C代码不是C++知道的 - 但是在那里需要注意.