C语言一般提供三种预处理功能:宏处理、文件包含、条件编译。头文件防卫式申明中会用到条件编译中 #ifndef、#define、#endif 的用法。所以,首先价绍下条件编译。
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法。OpenCV 的应用领域非常广泛,包括图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等。本篇介绍ARM Linux下OpenCV的移植和简单使用。
之前遇到一个同学问一个问题,他在c源文件中使用bool变量,然后编译的时候提示bool没有定义。不知道怎么办。其实对于初学者来说,遇到的编译错误最多的就是某某变量或函数没有定义,或者有的时候函数有定义,编译过了但是在链接的时候提示找不到函数符号。这类错误其实都是非常好解决的。下面介绍一种在linux下编程如何更好更快的解决此类问题。 对linux稍微有点了解的同学估计都知道linux下有一个man命令,但是会用的人估计并不多。man分为很多部分: 1 用户命令, 可由任何人启动的。 2 系统调用, 即由内核
一套新的Linux环境,需要部署个python写的程序,逻辑就是读取EDB数据库,进行一些数据的操作。由于连接的是EDB,需要pg的库psycopg2,当然能从官网进行下载(https://pypi.org/project/psycopg2/),但是本地安装,可能会碰见一些问题,其实主要是一堆依赖包的问题。
本篇重点是讲LVGL的开发辅助工具,以及利用这些工具将LVGL制作UI之后移植到嵌入式Linux开发板上显示。
Vsphere是通过VMTOOLS来实时监控管理虚机的,在centos7以上版本中会自带open-vm-tools工具,我们需要把这个组件卸载掉,然后安装vsphere里自带的vmtools工具。
Fedora 23安装 NS2 网络仿真器(Network Simulator 2)
6.4 交叉编译程序:以freetype为例 使用buildroot来给ARM板编译程序、编译库会很简单, 以后系统讲解buildroot时再使用buildroot。 现在我们还是手工交叉编译freetype,这种方法在编译、安装一些小程序时很有用。
本文用来测试的版本是VS2017.15.9.8 内网(\\192.168.80.20) 有相应的离线安装包
源码地址为:https://www.openssl.org/source/old/;当前最新版本为 1.1.0f,https://www.openssl.org/source/old/1.1.0/openssl-1.1.0f.tar.gz
System 系统调用的返回值 , 在不同的系统下是不同的 , 如 Windows , Linux , Mac 的系统调用返回值不同 ;
arm平台curl交叉编译方法。 基于curl + openssl + zlib 的方式组建arm上的https客户端,其中curl作为http客户端,openssl提供https支持,zlib负责处理gzip压缩的http报文。
对于Qt的初学者来说,Qt有很多不熟悉的地方,安装和使用时,都会遇到各种各样的“坑”。这些坑,如果经历过一次,就会发现其实是很简单的问题。但是如果不熟悉,那么可能折腾很久也没解决。因此我把我自己遇到的(也是后来常常被问到的)一些问题放在这里,供大家参考、讨论。
在使用 vscode 编写 eBPF 程序时,如果不做一些头文件定位的操作,默认情况下头文件总是带有“红色下划线”,并且大部分的变量不会有提示与补全。
今天分享的是如何一步步深入地学习Makefile。在Linux中编译代码,不像是Windows中有很多集成的IDE,Linux中都是通过基本的编译工具如gcc来进行,比如要编译main.c这个文件,可以使用gcc main.c -o main.但是如果源文件很多,这种方法就不适用了,所以,必须要学会使用Makefile。
TSN是”temporal-segment-networks”的简称,是视频动作识别任务里面当前最好的方法。虽然这个结构是在ECCV2016的论文里面提出来的,代码也放出来挺长时间了,但是这个项目里面集合了Caffe, OpenCV,CUDA,CUDNN等几大神坑项目,不同版本之间的依赖、选择等问题很麻烦,因此我之前编译了好几次都没有能够编译成功。这次花了近一天的时间来重新编译了一下整个项目,虽然还是有些问题,例如MPI编译没有通过,CUDA8貌似不支持,CuDNN v5好像也不支持,但最后总算是编译通过,可以运行了。所以记录一下整个的过程,期望对自己和别人能够有所帮助。
虽然我自己是在Linux环境上直接进行开发的,但也有许多的人是在Windows环境上从事开发工作的,如果离开自己熟悉的系统到陌生的环境上也许会影响到工作效率。
#运算符 #运算符将宏的一个参数转换为字符串字面量。它仅允许出现在带参数的宏的替换列表中。 #运算符所执行的操作可以理解为”字符串化“。 当我们有一个变量 int a = 10; 的时候,我们想打印出: the value of a is 10 . 就可以写:
大家好,我是道哥,今天我为大伙儿解说的技术知识点是:【使用 cmake 来构建跨平台的动态库和应用程序】。
他这个编译器安装比较简单,直接运行这个脚本即可:默认安装到opt下面,我这个是安装过一次了,所以会提示是否覆盖。
重装系统后安装VS2015时卡住了,于是试试看VS2017怎样,听说还支持调Linux。发现VS2017跟12/13/15又有了新的飞跃,竟然支持模块化下载,对于我这种主要写C++简直是个福音,勾了Linux C++和MFC后,C盘+D盘也才6G,比起VS2015只额外勾MFC就有10G来说轻了这么多!
mqtt是一种工业物联网协议,可以用来连接阿里云、百度云、onenet等云端,应用广泛。
ØMQ (也拼写作ZeroMQ,0MQ或ZMQ),号称号称是“史上最快的消息队列”,基于c语言开发。ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。
使用gcc编译器时,必须给出一系列必要的调用参数和文件名称。不同参数的先后顺序对执行结果没有影响,只有在使用同类参数时的先后顺序才需要考虑。如果使用了多个 -L 的参数来定义库目录,gcc会根据多个 -L 参数的先后顺序来执行相应的库目录。
一般来讲函数和宏的使用语法很相似,所以语言本身没法帮我们区分二者,那我们平时的一个习惯是:
为Android加入busybox工具可以通过两种方式进入Android的console:
libHaru是一个用来生成PDF文件的C语言、跨平台开发开源包,能再Windows、Linux、FreeBSD等等下使用。它支持线条、文本、图片、轮廓、文本注释、链接注释、文档压缩、图片嵌入、TrueType字体、加密PDF、支持多种字符集。libHaru目前的稳定版本是V2.3版。 编译libHaru这个开源库,需要其它的开源作为依赖,下面我们在Windows下编译libHaru。 1,下载zlib库,这个在官方网站上有最新的windows版本bin,不需要编译。 2,下载libpng,这个没有wi
动态链接库(又简称动态库)是很多工程项目中不可缺少的一部分。俗称.so文件(姑且就以linux系统为例,在windows中称为dll,在mac中为的dylib),在平时的使用中我们对其察觉可能并不是很深,但其实我们玩电脑的时候无时不刻在使用动态链接库。
今天我们来学习动静态库。我们之前有没有使用过库呢??? 当然了: strerror strstr strcpy memset...等函数都要有具体的实现,那这个具体的实现在哪里呢???就是在我们的库中!
JanDeDobbeleer/oh-my-poshhttps://github.com/JanDeDobbeleer/oh-my-posh
在linux中使用一些软件的命令行时,有时会遇到输入不正常的情况:方向键用不了,直接按方向键会出现一堆字符,退格也是,要按住ctrl才能正常退格,home和end键也不能正常用,等等。
博主手里有一个正点原子 STM32F103ZET6,行情最贵的时候买的,得好好利用。
记录一下自己交叉编译QT的过程,目前来说再体验了初次编译镜像之后,编译这个QT还是算比较快捷的,因为该有的库都安装完成了。
假设你下载了一款游戏,你是否会跑到游戏所在目录中双击 .exe 打开游戏?答案是不会,大多数人都会通过桌面的快捷方式直接打开文件,而这个快捷方式实际就是对 .exe 的 软链接 文件;当你在游戏中加载地图、道具等资源时,这些数据是存在 .exe 文件中的吗?答案是当然不是,这些资源文件都以 库 的方式与 .exe 位于同一目录中,通常为动态库,在 Windows 中后缀为 dll,那么这些神奇的辅助文件是如何产生的?本文将带你一起揭晓
我所使用的是cocos2d-x V2.0版本,而且源码有部分代码是修改过的。好在cocos2d-x官方已经放出了一个支持64位的2.2.6版本,可以做为参考。
VS2015编译boost1.62 Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。但Boost中也有很多是实验性质的东西,在实际的开发中实用需要谨
目前Tina 系统的各平台camera 硬件接口、linux 内核版本以及camera 驱动框架如下表所示:
CoM-iMX6UL(L) 是一款兼容 i.MX6UL(L)-x(X=Y0/1/2 三个版本)的高性能、低功耗工业级核心板,主要用于各种工业级、商业级的应用控制终端数据采集和处理、智能物流数据终端、数据中继器、新能源充电桩控制器和计费系统、车载终端数据采集和处理,是 NXF的 i.MX6UL(L)系列产品的一员。
Linux API 头文件(在 linux-3.19.tar.xz 里)会将内核 API 导出给 Glibc 使用。
笔者长期在ARM-LINUX嵌入式平台使用C语言开发。硬件IO操作只能用C确实没办法,但是应用程序用C简直就苦逼了,程序复杂一点,各种越界、指针错误、诡异死机、segment fault、内存泄漏、core dump、编译找不到头文件、依赖库,解析个字符费老劲,轮子太少纯靠白手起家。自从把Python移植到嵌入式平台,用C写完IO的Python扩展库然后用Python写应用程序完全就是摧枯拉朽般存在。
1 . Android 版本目录 : platforms 中存储了各个 Android 版本编译时需要的动态库与静态库资源 , 如 android-29 中就是该版本对应的本地库资源 ;
WireGuard 的安装和使用条件非常苛刻,对内核版本要求极高,不仅如此,在不同的系统中,内核,内核源码包,内核头文件必须存在且这三者版本要一致。所以一般不建议在生成环境中安装,除非你对自己的操作很有把握。Red Hat、CentOS、Fedora 等系统的内核,内核源码包,内核头文件包名分别为 kernel、kernel-devel、kernel-headers,Debian、Ubuntu 等系统的内核,内核源码包,内核头文件包名分别为 kernel、linux-headers。
在前面的Linux下ndk编译移植FFmpeg到Android平台文章中介绍了如何将最基本的FFmpeg到Android平台。但只是简单的移植了FFmpeg,没有包含x264编码器,并且AAC编码器也只有默认的。在Android平台下使用FFmpeg进行RTMP推流(摄像头推流)中我实际上已经用到了x264编码器,但没有介绍如何将x264集成到FFmpeg中。而本篇文章将解决这个问题,重点讲解如何集成x264和libfdk-aac,当然也会有问题汇总。
上一篇文章我用Qt做了个疫情数据实时监控平台,介绍了实现思路和简单过程,主要包括数据接口的获取和Qt的开发,这两天修复一些BUG,完善了部分功能,如下:
参考 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 ) 博客 , 此处涉及到 打开一个 " 生成文件项目 " ;
本人使用kali linux也有五六年了吧,就在昨晚执行了下面升级命令之后就发生了惨案:重启电脑之后上不了无线网。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
领取专属 10元无门槛券
手把手带您无忧上云