c++: 未定义对“Json::Value::Value(Json::ValueType)”的引用
c++: undefined reference to `Json::Value::Value(Json::ValueType)'
我用 'sudo apt-get install libjsoncpp-dev' 在 ubuntu 上安装了 jsoncpp 并尝试 运行 一个简约的测试程序:
#include <iostream>
#include <fstream>
#include <jsoncpp/json/json.h>
int main()
{
ifstream file("example.json");
Json::Value value;
Json::Reader reader;
reader.parse(file,value);
cout << value << endl;
}
我正在使用 makefile 编译带有以下标志的代码:
CC=g++
CXXFLAGS=-std=c++17 -fopenmp -O3 -ljsoncpp
出现以下错误:
/usr/bin/ld: /tmp/cc4MbV6f.o: in function `Test_JsonWriter()':
test.cpp:(.text+0x5865): undefined reference to `Json::Value::Value(Json::ValueType)'
/usr/bin/ld: test.cpp:(.text+0x5872): undefined reference to `Json::Reader::Reader()'
/usr/bin/ld: test.cpp:(.text+0x5885): undefined reference to `Json::Reader::parse(std::istream&, Json::Value&, bool)'
/usr/bin/ld: test.cpp:(.text+0x5894): undefined reference to `Json::operator<<(std::ostream&, Json::Value const&)'
/usr/bin/ld: test.cpp:(.text+0x5a9f): undefined reference to `Json::Value::~Value()'
/usr/bin/ld: /tmp/cc4MbV6f.o: in function `Test_JsonWriter() [clone .cold]':
test.cpp:(.text.unlikely+0x6bf): undefined reference to `Json::Value::~Value()'
collect2: error: ld returned 1 exit status
make: *** [Makefile:21: test] Error 1
我还确保更新了所有软件包等。包括“#include ”也无济于事。
知道哪里出了问题吗?感谢您的帮助。
user17732522的评论解决了我的问题!
标志放置不正确:
“-ljsoncpp 必须放在编译器调用中的 .cpp 文件或 .o 文件的名称之后”-user17732522
我用 'sudo apt-get install libjsoncpp-dev' 在 ubuntu 上安装了 jsoncpp 并尝试 运行 一个简约的测试程序:
#include <iostream>
#include <fstream>
#include <jsoncpp/json/json.h>
int main()
{
ifstream file("example.json");
Json::Value value;
Json::Reader reader;
reader.parse(file,value);
cout << value << endl;
}
我正在使用 makefile 编译带有以下标志的代码:
CC=g++
CXXFLAGS=-std=c++17 -fopenmp -O3 -ljsoncpp
出现以下错误:
/usr/bin/ld: /tmp/cc4MbV6f.o: in function `Test_JsonWriter()':
test.cpp:(.text+0x5865): undefined reference to `Json::Value::Value(Json::ValueType)'
/usr/bin/ld: test.cpp:(.text+0x5872): undefined reference to `Json::Reader::Reader()'
/usr/bin/ld: test.cpp:(.text+0x5885): undefined reference to `Json::Reader::parse(std::istream&, Json::Value&, bool)'
/usr/bin/ld: test.cpp:(.text+0x5894): undefined reference to `Json::operator<<(std::ostream&, Json::Value const&)'
/usr/bin/ld: test.cpp:(.text+0x5a9f): undefined reference to `Json::Value::~Value()'
/usr/bin/ld: /tmp/cc4MbV6f.o: in function `Test_JsonWriter() [clone .cold]':
test.cpp:(.text.unlikely+0x6bf): undefined reference to `Json::Value::~Value()'
collect2: error: ld returned 1 exit status
make: *** [Makefile:21: test] Error 1
我还确保更新了所有软件包等。包括“#include
知道哪里出了问题吗?感谢您的帮助。
user17732522的评论解决了我的问题! 标志放置不正确:
“-ljsoncpp 必须放在编译器调用中的 .cpp 文件或 .o 文件的名称之后”-user17732522