大家都知道使用开源软件时,会遇到各种奇葩问题,当然我也不例外。

今天用qt添加json库,真shut,那个郁闷阿,在网上各种搜,好像没一个能行,算了还是自己想办法吧。最后经过不懈努力再加上xxxx,哈哈哈,最后搞定了。

环境: qtcreator2.4.1    qt4.8.0(linux 64bit)  qt5.1.1(windows xp)  vs2010

linux 和 windows下测试通过。


当然就像网上说的一样,需要修改 .pro文件,这里我也是通过修改这个文件的。刚开始的时候,那是各种加法,网上海搜,google、baidu。一一试过,只能是暗自伤神阿。最后发现答案居然会是这么的简单,又一次打击了下。其实答案是这样的,选中项目-> 右键 -> 添加库 -> 外部库 -> 下一步 -> 在次有几个选项,“库文件”、“包含路进"、”平台”(平台我选的是 linux windows),我是在windows下添加的库,发现库文件一定要是 *.lib的,也就是在windows下,生成的dll文件时也一定要顺带生成lib文件“库文件”选择的是lib文件,“包含路径”是lib文件的路径,dll文件则放在程序生成的目录中,就是项目中“构建目录”。ok,重新编译,起死回生,有没有,哈哈哈。


就是这么简单,简单才是真理。这也是程序设计的艺术。但是网络上所说的方法问什么不幸呢,又去观察下.pro文件,发现他的配置还是和网上的配置是不一样的,是吗?不是吗!

我的.pro相关代码

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/library/ -ljson
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/library/ -ljsond
else:unix:!macx: LIBS += -L$$PWD/library/ -ljson
 
INCLUDEPATH += $$PWD/library
DEPENDPATH += $$PWD/library


完了吗,一般的故事都是平起平落,但是精彩的故事高潮迭起。当然故事的发生总离不开环境的变化,只有在天时、地利、人和三者和一,才会有个好故事。而今天的故事似乎凝结了这三者,而恰巧故事的主人公就是我(呵呵呵呵,不好意思,一不小心,成了中心人物)。

公司的环境是windows下的,而我的电脑是linux的,新潮。没办法。回家一编译,当然这里面也包括json的编译,那个坑阿,总之玩linux其实是被linux玩的,大家都懂得。当然故事讲到这里,另一个触发点来了,我编译得到json的lib,名字是libjson_linux-gcc-4.7.2_libmt.*,高潮要来了,无论我把else:unix:!macx: LIBS += -L$$PWD/library/ -ljson改成else:unix:!macx: LIBS += -L$$PWD/library/ -llibjson_linux-gcc-4.7.2_libmt,还是其他的,都不行,一直提示找不到json的lib,nnd,都要骂娘了。后来我想了又想,想了再想,哦,原来是这样阿,我把libjson_linux-gcc-4.7.2_libmt.so 改成libjson.so,ok,又一次成功了。oh yeah.


就这样windows、linux下都成功了。为什么要把名字改成libjson.so呢?哈哈哈哈哈,不告诉你,我相信你一定会明白的。如果你明白了的话,那么你一定知道linux下的另一种改法。


祝大家好运!

Logo

更多推荐