c++ 编译问题
/tmp/ccL2NVKs.o:Infunction`main':/home/test/test2.c:6:undefinedreferenceto`Json::Read...
/tmp/ccL2NVKs.o: In function `main':
/home/test/test2.c:6: undefined reference to `Json::Reader::Reader()'
/home/test/test2.c:7: undefined reference to
`Json::Value::Value(Json::ValueType)'
/home/test/test2.c:9: undefined reference to `Json::Value::~Value()'
/home/test/test2.c:9: undefined reference to `Json::Value::~Value()'
jsoncpp 有用过的没?编译老报这问题,什么情况哇?本人新手,真心请教.
下面是make脚本
OBJS= test.o
CC=g++
FLAGS= -O -g
JSON_H=/home/jsoncpp/jsoncpp-src-0.5.0/include
JSON_LIB=/home/jsoncpp/jsoncpp-src-0.5.0/libs/linux-gcc-4.1.2
test:$(OBJS)
$(CC) $(OBJS)
test.o:test2.c
$(CC) $(FLAGS) test2.c -I$(JSON_H) -L$(JSON_LIB)
clean:
rm -rf *.o test 展开
/home/test/test2.c:6: undefined reference to `Json::Reader::Reader()'
/home/test/test2.c:7: undefined reference to
`Json::Value::Value(Json::ValueType)'
/home/test/test2.c:9: undefined reference to `Json::Value::~Value()'
/home/test/test2.c:9: undefined reference to `Json::Value::~Value()'
jsoncpp 有用过的没?编译老报这问题,什么情况哇?本人新手,真心请教.
下面是make脚本
OBJS= test.o
CC=g++
FLAGS= -O -g
JSON_H=/home/jsoncpp/jsoncpp-src-0.5.0/include
JSON_LIB=/home/jsoncpp/jsoncpp-src-0.5.0/libs/linux-gcc-4.1.2
test:$(OBJS)
$(CC) $(OBJS)
test.o:test2.c
$(CC) $(FLAGS) test2.c -I$(JSON_H) -L$(JSON_LIB)
clean:
rm -rf *.o test 展开
1个回答
展开全部
这个问题是你的编译命令写错了,你给出了头文件的地址和库文件的地址,但是你链接的时候没有给出lib所在的地址,你的编译命令应该写成如下形式:
$(CC) $(FLAGS) test2.c -I$(JSON_H) -L$(JSON_LIB) -l****
其中***表示的是你要链接的库的名字,比如你要链接的库是libjson.so(这是linux的形式,windows下是.lib)
那么***就写成json,其中***前面的是-l(L小写,不是i的大写)
这样你就能链接成功了
$(CC) $(FLAGS) test2.c -I$(JSON_H) -L$(JSON_LIB) -l****
其中***表示的是你要链接的库的名字,比如你要链接的库是libjson.so(这是linux的形式,windows下是.lib)
那么***就写成json,其中***前面的是-l(L小写,不是i的大写)
这样你就能链接成功了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询