我需要在我的C ++项目中包含一个C头文件,但g ++会抛出"未在此范围内声明"错误。 我读到我需要使用extern" C"要修复它的关键字,但它似乎对我不起作用。
这是一个触发此错误的虚拟示例。
main.cpp中:
#include <iostream>
extern "C"
{
#include "includedFile.h"
}
int main()
{
int a = 2;
int b = 1212;
std::cout<< "Hello World!\n";
return 0;
}
includedFile.h
#include <stdint.h>
enum TypeOfEnum {
ONE,
TWO,
THREE,
FOUR = INT32_MAX,
};
抛出的错误是:
$> g++ main.cpp
In file included from main.cpp:4:0:
includedFile.h:7:9: error: ‘INT32_MAX’ was not declared in this scope
FOUR = INT32_MAX,
我在this post上看到我可能需要#define __STDC_LIMIT_MACROS
而没有任何成功。
欢迎任何帮助!
答案 0 :(得分:0)
<cstdint>
是C ++ 11的一项功能。将-std=c++11
传递给您的编译器。