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
展开
 我来答
百度网友c190aa5
2013-08-31 · TA获得超过185个赞
知道答主
回答量:75
采纳率:0%
帮助的人:82.5万
展开全部
这个问题是你的编译命令写错了,你给出了头文件的地址和库文件的地址,但是你链接的时候没有给出lib所在的地址,你的编译命令应该写成如下形式:

$(CC) $(FLAGS) test2.c -I$(JSON_H) -L$(JSON_LIB) -l****
其中***表示的是你要链接的库的名字,比如你要链接的库是libjson.so(这是linux的形式,windows下是.lib)
那么***就写成json,其中***前面的是-l(L小写,不是i的大写)
这样你就能链接成功了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式