我在Github上下载jsoncpp。并用介子和忍者建造并安装它。但是当我在我的程序中包含<json/json.h>
时,我收到了错误:
'PrecisionType'不是类或命名空间。
"json/writer.h"
有什么不对吗?
答案 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
此致