jsoncpp错误:'PrecisionType'不是类或命名空间

时间:2018-04-24 07:37:30

标签: linux compiler-errors jsoncpp

我在Github上下载jsoncpp。并用介子和忍者建造并安装它。但是当我在我的程序中包含<json/json.h>时,我收到了错误:

  

'PrecisionType'不是类或命名空间。

"json/writer.h"有什么不对吗?

错误: error

2 个答案:

答案 0 :(得分:1)

我的猜测是您正在使用来自以下示例的测试代码 https://finbarr.ca/jsoncpp-example/

问题可能是标志顺序中的Makefile问题:

将示例中的Makefile更改如下:

CXX = g++
CPPFLAGS = -std=gnu++11
LDFLAGS = -L/{YOUR_PATH}/jsoncpp/build/debug/src/lib_json -ljsoncpp
INC = -I/{YOUR_PATH}/jsoncpp/include

main: main.cpp
    $(CXX) -o main main.cpp $(CPPFLAGS) $(INC) $(LDFLAGS)

修正路径,但确保标志顺序正确...

答案 1 :(得分:0)

您尝试访问枚举的方式(PrecisionType是枚举),即。 PrecisionType::significantDigits符合-std=c++11,而不符合旧版

/** \brief Type of precision for formatting of real values.
 */
enum PrecisionType {
  significantDigits = 0, ///< we set max number of significant digits in string
  decimalPlaces          ///< we set max number of digits after "." in string
};

<强>解决方案

如果您只使用g ++进行编译,则可以添加以下g++ -std=c++11 <file-name>

如果是Makefile,您需要将CPPFLAGS修改为CPPFLAGS= -std=c++11

此致