首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

使用cmake编译和安装jsoncpp-0.10.2

网上主要介绍了python方式编译安装jsoncpp,但它的官网有介绍cmake安装命令行安装方式,以下笔记在SUSE Linux g++ 4.1.0上经过验证。 使用cmake生成Makefile文件,类似于执行automake的“configure”: cmake -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DINCLUDE_INSTALL_DIR=/usr/local/thirdparty/jsoncpp-0.10.2/include -DARCHIVE_INSTALL_DIR=/usr/local/thirdparty/jsoncpp-0.10.2/lib 这一步成功后,可以看到产生了Makefile文件,之后就可以执行“make”编译和“make install“安装了。 “cmake”参数说明: INCLUDE_INSTALL_DIR为指定“头文件”的安装目录 ARCHIVE_INSTALL_DIR为指定“静态库文件”的安装目录 LIBRARY_INSTALL_DIR为指定“共享库文件”的安装目录 RUNTIME_INSTALL_DIR为指定“可执行程序文件”的安装目录 BUILD_STATIC_LIBS=ON 表示生成静态库文件 BUILD_SHARED_LIBS=OFF 表示不生成共享库文件 如果想编译成debug版本,则加上“-DCMAKE_BUILD_TYPE=debug”。 遇到的编译错误1: include/json/config.h:100: error: ISO C++ does not support 'long long' include/json/config.h:101: error: ISO C++ does not support 'long long' 解决方法: 修改include/json/config.h,将下面一段 #if defined(_MSC_VER) // Microsoft Visual Studio typedef __int64 Int64; typedef unsigned __int64 UInt64; #else                 // if defined(_MSC_VER) // Other platforms, use long long typedef long long int Int64; typedef unsigned long long int UInt64; #endif // if defined(_MSC_VER) 修改成: #if defined(_MSC_VER) // Microsoft Visual Studio typedef __int64 Int64; typedef unsigned __int64 UInt64; #else                 // if defined(_MSC_VER) // Other platforms, use long long __extension__ typedef long long int Int64; __extension__ typedef unsigned long long int UInt64; #endif // if defined(_MSC_VER) 注意要加“__extension__”修饰,因为“long long”是C99标准中的,“__extension__”表示启用g++的扩展。 遇到的编译错误2: /tmp/X/jsoncpp-0.10.2/src/test_lib_json/main.cpp:1243: error: integer constant is too large for 'long' type 解决方法: 测试代码,可直接注释掉1243一行代码。

02

开源流程推动软件定义的一切

Linux Foundation(LF)一直在悄悄推动工业革命。它正在引发对软件定义的一切的独特变革,这代表了垂直行业的根本转变。 LF在9月24日发布了一份广泛的报告,内容涉及软件如何定义一切以及开源软件如何数字化改变全球必不可少的垂直行业。 “软件定义的垂直行业:通过开源转型”深入研究了Linux基金会服务的主要垂直行业计划。它着重介绍了最著名的开源项目,以及基金会为何相信这些已有100多年历史的关键行业垂直市场已经使用开源软件进行了自我改造。 数字化转型是指将所有企业转变为由软件驱动的高科技企业的过程。朝着软件定义的一切的转变对于垂直行业组织来说是一个根本性的转变,相对于大多数软件供应商,其中许多组织通常都拥有小型软件开发团队。 一些世界上最大,最受管制的,复杂且具有数百年历史的行业,例如银行,电信,电影,公共卫生和能源,具有一些共同的基本要素。这些行业不仅依赖开源,而且还在其研发模型的基础上构建开源。根据LF分析,它们都依赖于开源协作所提供的创新速度。 在垂直行业中,与众不同的一个关键因素是采用开放源代码,在这种情况下,公司已从成为用户转变为贡献者。该报告的数据显示,采用四分之一的公司采用开放源代码对创新的影响是其他四分位数中的公司的三倍。 在过去的20年中,Linux Foundation从一个项目Linux内核扩展到数百个不同的项目社区。 LF开发了基础即服务模型,该模型支持跨关键水平技术领域在开源上进行协作的社区。 但是,这些项目社区中有许多是跨垂直行业分组的,例如汽车,电影,金融,电信,能源和公共卫生计划。他们可能是作为个人努力开始寻找Linux Foundation的中立之家。但是随着时间的流逝,这些社区发现协作很有用,因为支持项目的组织将协作范围扩展到其他领域。 Linux基金会已经成为在全球率先倡导开源模型的领先组织。它的项目得到了超过25万名开发商和18,000家公司的贡献。 Linux基金会高级副总裁兼项目总经理Mike Dolan表示,全世界有2,000多名会员支持Linux基金会及其项目。 他对LinuxInsider表示:“我们的会员比例大约是美国的43%,欧洲,中东和非洲地区的33%,以及亚太地区的25%。我们很高兴与世界各地的行业领导者合作,希望他们在全球范围内进行合作。”

00

Qt编写地图综合应用20-多浏览器内核

本人写Qt程序这么多年,比较喜欢支持多个Qt版本,尤其是钟情于支持任意Qt版本+任意系统+任意编译器,这句话说起来简单其实实现起来就不容易了,首先你得有个很多版本的测试环境,起码十几个Qt环境要的吧,四五种操作系统要的吧,还要安装各种VS版本免不了的,毕竟win上除了默认的mingw编译器还有很多人用的是msvc编译器,这么一大堆环境折腾下来,没有个1T硬盘是不够的,而且官网发布Qt版本的速度相当快,最慢半年肯定来一个版本,又得测试了,每次发布一个大的版本,除了常用的windows以外,linux要测试吧,而且现在还多出来一些国产linux系统比如deepin new start UOS之类的,也要试试吧,哎呀好累。

02

Qt音视频开发37-USB摄像头解码ffmpeg方案

用ffmpeg来处理USB摄像头,是前段时间研究视频监控ffmpeg内核的时候搞定的,既然ffmpeg这么牛逼的库可以解析各种音视频,我想处理个本地USB摄像头应该也不是什么难事,果真搜索也是一大堆,当然主要也是因为有个项目的应用需要用到ffmpeg来处理本地USB摄像头,需要拿到每张图片做智能分析,用Qt自带的camera类不大好处理,刚好将ffmpeg的处理流程都搞清楚了,索性直接用ffmpeg来直接处理好了,用上这么强大的解码库,理论上支持各种USB摄像头。本地USB摄像机不需要硬解码,视频流编码类型为 AV_CODEC_ID_RAWVIDEO 像素格式为 AV_PIX_FMT_YUYV422 不经过解码操作直接就可显示。

00
领券