为了能更好的学习和运用ffmpeg, 建议下载ffmpeg源码自己编译.这里的编译方法基于ubuntu16.04环境.直接按照编译FFmpeg来做可能会碰到一些错误, 我将自己编译碰到的错误记录在最后面. 我自己编译的工程已经传到github上 https://github.com/yizhongliu/ffmpegForAndroid
GPFDAT的第4位为0-低电平,1-高电平。(注:corresponding,相应的)
作者: 付汉杰 hankf@xilinx.com hankf@amd.com 测试环境: PetaLinux 2021.2
再次配置,就成功了 [root@h101 daq-2.0.6]# ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make
https://www.rsyslog.com/news-releases/,我使用的是最新的8.1910版本
欣赏一下韦东山老师写的通用 Makefile 源码,韦东山老师的“通用 Makefile” 是参考内核的 Makefile 编写出来的,这个通用的 Makefile 可以在工作中方便使用。
gcc和cc是一样的,c++和g++是一样的。一般c程序就用gcc编译,c++程序就用g++编译
Petalinux可以帮助工程师简化内核模块的创建工作。在petalinux工程目录下,使用命令“petalinux-create -t modules --name --enable”,能创建Linux内核模块,包括c源代码文件、Makefile、Yocto的bb文件。相关文件放在目录“project-spec/meta-user/recipes-modules”,目录结构如下。
点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,麻烦点个在看或点个赞,感谢~ 文章首发 公众号—— Pou光明
2、pkg-config软件官网:http://www.freedesktop.org/wiki/Software/pkg-config/
配套资料: makefile方面有陈皓大神的跟我一起写MakeFile,我就不班门弄斧了。
在一个尚未成熟的行业中,一般行业标准是先于国家标准。这就导致了开发人员需要做很多兼容工作,再就是会用到很多其他厂商提供的库与头文件,面对不同版本的标准,一般会更新库与头文件。那么此时如果要兼容新库和旧库要做怎样的操作呢?
Linux应用层想要操作kernel层的API,比方想操作相关GPIO或寄存器,能够通过写一个字符设备驱动来实现。
在编译程序时,借助参数传递的方法,使用与系统CPU相匹配的gcc参数,编译出的程序就是为系统CPU而进行特定优化过的,因而执行速度和效率都会是最好。
前面写了一篇文章《Linux C/C++工程中可生成ELF、动/静态库文件的通用Makefile》,里面的Makefile代码有个不好的地方需要修改。当编译.cpp文件时,使用的STD_OPT变量仍然是编译.c文件时的参数-std=c99,这个在C++中是不支持的。
某个角度上说,kindle很类似android,同样的Linux内核,同样的Java用户层。不过kindle更注重简单、节能、稳定。Amazon一向认为,功能过多会分散人们阅读时候的注意力。 Kindle底层的Linux比Android保持了更多的linux兼容性,可以使用GTK或者QT编写程序。QT适合编写大的、独占界面性的应用,比如多看就曾经发布过一个Kindle之上的版本,现在还有很多人用,可惜因为公司战略调整的原因,这个产品被废弃了。GTK及最基本的Linux应用更适合开发一些补丁性的小程序,来补
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/83088803
pkg-config 是一个在源代码编译时查询已安装的库的使用接口的计算机工具软件。
因为google在 NDK R19C中把GCC删除了。本来想着能不能配置出用clang编译ffmpeg,可是折腾了半天还是不行,于是还是用gcc吧。。支持gcc版本的最高的ndk是 NDK R17C,需要下载ndk r17c的开发包。另外最新的x264和ffmpeg代码需要最低 android-23的编译。也就是最低android6.0。因为有个 cabs()函数,只有android6.0才有。基本注意的就这两个方面。1,需要ndk r17c. 2,最低需要定义android-23。 下面是编译shell. 系统是centos7.0 第一个shell脚本是生成交叉编译toolchain
这个树形图展示了一个项目中的层级关系,如果我们需要变动3号文件,会发现,牵一发而动全身,改动一个被迫需要改动一堆,为了解放我们,make中编写Makefile就不再需要考虑这些,你把每个文件的依赖关系以指令的形式说明清楚并且保存下来,改动一个即可,会自动帮你修改关联到的其他文件。
Makefile是在Linux环境下 C/C++ 程序开发必须要掌握的一个工程管理文件。当你使用make命令去编译一个工程项目时,make工具会首先到这个项目的根目录下去寻找Makefile文件,然后才能根据这个文件去编译程序。
由于UART0 被设定为系统dubug 输出(简单来说就是将ttyS0 设定为console),所以使用UART3 作为普通的串口,进行与别的设备通信。
有工程师反馈,使用A53交叉编译器直接编译最简单的C文件,编译器也报告。"stdio.h: No such file or directory"
之前GCC那部分我提到过,gcc啥啥啥啥傻傻的那个指令只能够编译简单的代码,如果要干大事(例如突然心血来潮写个c开头的神经网络库之类的),还是要写Makefile来编译。其实在Windows下通常用IDE,例如Visual Studio,那个所谓的“项目”就有点像Makefile。通常Windows系统下这类IDE会自动帮你配置了编译时需要的东西,而Linux环境下我们需要自己来写Makefile来实现IDE的效果,听起来会麻烦点,实际上掌握了技巧之后就那样。
上面的Makefile文件就是要编译出一个firstTest的可执行文件,逐句分析:
https://developer.android.google.cn/ndk/downloads/ 在安卓开发官网可以下载到,可以直接在linux中下载,也可以在windows平台下载后传到linux下,我这边使用的是14b版的ndk
Gentoo一个最大的好处就在于其文档相当的全面,今天在maillist上看到有人提到这篇Compilation Optimization Guide,读过之后对gentoo系统的认识又深入了一点,记几点心得。
DeepStream是基于GStreamer开发的。它们主要都是做视频流处理的。现在我们来看一个GStreamer的HelloWorld。
makefile就像一个Bash脚本,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
NDK 全称 Native Development Kit,也就是原生开发工具包 ,官网对它有详细的 中文介绍 。可能一说到 NDK 或 JNI ,大家脑子里第一反应就是集成 C/C++ 。其实 JNI 的含义是 Java Native Interface ,这种接口允许 Java 和其他语言进行交互的,包括但不限于 C/C++ 。目前 Rust 也可以通过 JNI 来和 Java 交互,虽然不太成熟。
linux下程序开发,涉及到多个文件,多个目录,这时候编译文件的任务量比较大,需要写Makefile
ndk个版本下载地址选择:https://blog.csdn.net/shuzfan/article/details/52690554
这是为了给接下来的Linux下嵌入式开发打好基础,尽快熟悉Linux下c编程,但是在开发stm32的时候,编译工具链要使用gcc-arm-none-eabi,为什么不是gcc呢?这就要说到linux下的交叉编译了,因为我们要在PC机上编译出可以运行在ARM上的程序,使用gcc编译出的是在PC上运行的程序,所以我们要使用gcc-arm-none-eabi进行交叉编译~
之前搞 opentelemetry-cpp 的时候接触了下 bazel 构建系统。这玩意儿用起来有一点坑,特别是使用自定义编译环境的时候。
二、安装lzo 1、wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz 2、tar -zxvf lzo-2.06.tar.gz 3、mv lzo-2.06 lzo && cd lzo 4、export CFLAGS=-m64 5、./configure -enable-shared 6、make && make install【默认安装在了/usr/local/lib下:liblzo2.a liblzo2.la liblzo2.so liblzo2.so.2 liblzo2.so.2.0.0】 7、在/etc/ld.so.conf.d/目录下新建lzo.conf文件,内容: /usr/local/lib 8、让lzo.conf生效:/sbin/ldconfig -v
之前一直想做linux+qt方向的,然而现在变成嵌入式软件方向了。其实也还好吧,这样就需要对底层的一些东西了解,目前是智能交通行业了。
作者: 付汉杰 hankf@xilinx.com hankf@amd.com 测试环境: Vivado/PetaLinux 2021.2, Linux 5.10.0
编译 Luajit 库,的确是一个挑战。因为官网的教程,在当前版本的 Xcode 和 NDK 环境中,已经不适用了。以前只是编译了适用于真机的 Luajit 库。最近在尝试编译模拟器 Luajit 库,就顺便梳理了下 Luajit 库的编译经验,供以后查阅。网上的讨论也是有一些,但是相当一部分都已经过时。或许等你看到这篇文章的时候,可能也只是能获得一些可能的经验来解决自己的编译问题。所以说,了解一些基本的编译知识,能勉强看懂 Luajit 的 make 文件,还是很有必要的。本篇是关于 Luajit 静态库的,如果你想找的是如何编译适用于移动端的 Luajit 字节码,可以直接看 【最新】LuaJIT 32/64 位字节码,从编译到使用全纪录。
在Linux或Unix环境下,对于只含有几个源代码文件的小程序(如hello.c)的编译,可以手工键入gcc命令对源代码文件逐个进行编译;然而在大型的项目开发中,可能涉及几十到几百个源文件,采用手工键入的方式进行编译,则非常不方便,而且一旦修改了源代码,尤其头文件发生了的修改,采用手工方式进行编译和维护的工作量相当大,而且容易出错。所以在Linux或Unix环境下,人们通常利用GNU make工具来自动完成应用程序的维护和编译工作。
http://www.ict.kth.se/courses/IS2202/software
网上其实已经有很多的关于FFmpeg so库编译的分享,但是大部分都是直接把配置文件的内容贴出来。我想大部分取搜索 「如何编译FFmpeg so库」的人,对交叉编译这个东东都是比较陌生的。
在使用 vscode 编写 eBPF 程序时,如果不做一些头文件定位的操作,默认情况下头文件总是带有“红色下划线”,并且大部分的变量不会有提示与补全。
需要修改 TestODBCSample.c 中 connect 函数中的 user参数的值,使用本文开头创建的数据库账号用户名。
关于RS-232C串口总线通信标准请参见我的另一个系列专题文章(还未在公众号更新,请点击查看原文或者复制链接移步至csdn博客查看):
记录一次luaxml编译的解决过程 参考 http://blog.csdn.net/dc_show/article/details/38957991
在没有编写makefile之前可以使用命令gcc *.c -Wall查看当前代码是否有语法错误。检查没有语法错误以后可以编写makefile文件。
curl是一个成熟的HTTP client库,可以使用cmake在命令行完成交叉编译。
最近在学点新东西,教程中主要也是在Linux中使用,对于我这个以前从未接触Linux系统的人来说,正好也是个机会掌握下LInux系统。这篇就是记录在Linux下安装OpenCV的笔记。
开发项目在嵌入式平台上使用MiniGui作为用户界面开发工具,在工作之余准备在ubuntu14.04上搭建一个测试环境,这样代码测试起来比较方便。
SDL系列讲解(一) 简介 SDL系列讲解(二) 环境搭建 SDL系列讲解(三) 工具安装 SDL是什么,能干什么,为什么我们要学习它? SDL系列讲解(四) demo讲解 SDL系列讲解(五) 调试c代码 SDL系列讲解(六) SDL_Activity流程 SDL系列讲解(七) SDL_image教程 SDL系列讲解(八) SDL_ttf教程 SDL系列讲解(九) 异常退出分析 SDL系列讲解(十) 按键处理流程 SDL系列讲解(十一) SDL_QUIT流程 SDL系列讲解(十二)创建窗口流程
领取专属 10元无门槛券
手把手带您无忧上云