本文将介绍如何使用 SDCC + CMake 构建一个适用于 STC8 系列(8051 架构)MCU 的嵌入式工程,从软件准备到最终生成 .hex 文件,适合初学者逐步上手。 一、前提条件 1....⚙️ 四、构建系统:CMake 本项目使用 CMake 构建系统来组织源代码、配置编译器(如 SDCC)、管理构建过程,并生成最终的十六进制(.hex)固件文件。...整个构建过程高度自动化,便于在不同平台下统一使用命令行进行构建。 1. CMakeLists.txt 这个文件是 CMake 的核心配置脚本,用于定义整个项目的构建逻辑。...这个文件是通过以下几个步骤生成的: 构建命令(以 Ninja 为例) cmake -B build -G "Ninja" cmake --build build 实际构建输出示例: PS D:\B> cmake...随后,.rel 文件被链接生成 .ihx(Intel Hex)格式中间文件。 通过 SDCC 附带的 packihx 工具将 .ihx 转换为标准的 .hex 文件。
另外,少数程序库需要安装一些额外的工具来帮助构建,已知的情况有: 库名 平台 工具 原因 openssl Windows perl,NASM 帮助配置;优化性能 libjpeg Windows NASM...▶️ 使用 本项目为不同平台提供专用脚本,位于对应子目录中。所有操作均通过命令行参数控制,支持灵活配置。...说明 实现原理 CMake 已成为当前 C/C++ 项目构建的事实标准,大多数开源库都已支持通过 CMake 进行编译。...优先构建动态库:尽管跨版本二进制兼容仍是挑战,但 Windows 和 Linux 平台在其自身生态内已具备一定的动态库兼容能力,因此本项目默认生成 .dll / .so 文件,以提升复用性与部署灵活性。...✅ 测试 本项目已在以下环境中完成构建与验证,相关二进制成果已发布供参考和使用: Windows 11 (x64) 使用 Visual Studio 2019 (MSVC) 成功构建,生成的预编译库已发布至另一个
这里就具体讲解一下如何构建它。 2. 构建过程 2.1 Windows环境 首先要说明的是OpenSSL目前的版本(我使用的是3.4.0版本)还没有支持使用CMake构建。...另外,还需要安装NASM作为汇编器,一般使用这个是为了获得指令集级别的性能优化。安装好这两个程序之后,一般会自动在Path环境变量中增加相应的可执行程序位置。如果没有添加成功,就手动添加一下。...C:\Users\Charlee>nasm -v NASM version 2.16.01 compiled on Jun 1 2023 由于MSVC的命令行工具是基于CMD终端的,也就是使用不了更方便的...使用方式 虽然Openssl并没有提供CMake的编译方式,但是构建完成后却提供了OpenSSLConfig.cmake配置文件,能够被CMake正常识别引入。...关于这一步读者如果不太理解可以参考一下笔者前面的文章《CMake构建学习笔记15-组建第一个程序项目》。 另外,OpenSSL还提供了一个可执行程序,通过这个可执行程序可以创建一个SSL证书。
tar xvf libjpeg-turbo-2.0.5.tar.gz 二、 libjpeg-turbo 编译文档 编译文档 : 查看 libjpeg-turbo 函数库的 ReadMe 信息 , 查找如何编译该函数库...NASM or YASM 工具 , 建议使用 2.10 版本以上的 NASM 工具 ; ④ GCC 编译器 : 4.1 以上的 GCC 工具 , 这里交叉编译使用 NDK 中的 GCC 工具即可 ;...此处连接下载 ; 2、 拷贝解压 NASM 源码 拷贝文件 : 将该文件拷贝到 Ubuntu 系统中的 /root/picture_compress 目录中 ; 解压该文件 : 调用 tar xvf...nasm-2.15.tar.gz 命令 , 解压该文件 ; $ tar xvf nasm-2.15.tar.gz 该目录中的文件情况 : 有 libjpeg-turbo-2.0.5 , libjpeg-turbo...编译安装 nasm-2.15 编译 nasm-2.15 : ① 生成 Makefile 文件 : 进入 nasm-2.15 目录 , 执行 .
我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。...TryBuild 模式,可以在没有 xmake.lua 的情况下,使用 Xmake 尝试对 autoconf/cmake/meson 等维护的第三方项目进行直接构建。...,不支持部分代码 而 TryBuild 模式通常处理这些情况,但是在新版本中,我们对 TryBuild 模式引入了一种新的机制,通过复用 xmake-repo 仓库中的构建脚本,来改进构建逻辑。...= -- CMAKE_ASM_NASM_COMPILER = /usr/local/bin/nasm -- CMAKE_ASM_NASM_OBJECT_FORMAT = macho64 -- CMAKE_ASM_NASM_FLAGS...回退到直接编译 如果我们不想使用 xmake-repo 的构建脚本,我们也能回退到 cmake/autoconf 直接去尝试构建它们。
进行下载05、开始安装FFmpeg依赖环境nasm>>>2)安装nasm第一步:进入nasm文件中,打开终端,输入命令:....(x265编码构建时需要,故可安装也可不安装),打开终端,输入命令:sudo apt install cmake -y或apt install cmake -y06、开始安装FFmpeg依赖环境x264...QT_FFmpegTest项目文件中>>>{【引用 这里实际可不用,但是有必要说一下,方便管理项目】在 Qt 工程中,如果你希望通过 .pri 文件引入目录下的文件夹,你可以按照以下步骤操作:创建 .pri....pro 文件:在你的主 .pro 文件中,使用 include() 函数引入你刚刚创建的 .pri 文件。...重新构建项目:保存所有修改后,请重新运行 qmake 和构建项目,以确保新加入的文件被成功识别。执行qmake并未使用,.pri的头文件和源文件一般最好在第一级目录,不然加载不进来。}
您可以使用我们的注册/中继服务器, 或者自己设置, 亦或者开发您的版本。...依赖 桌面版本界面使用sciter, 请自行下载。...) sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool...# 进入文件夹 docker build -t "rustdesk-builder" . # 构建容器 请注意: 针对国内网络访问问题,可以做以下几点优化:Dockerfile 中修改系统的源到国内镜像...运行 RustDesk 程序 生成的可执行程序在 target 目录下,可直接通过指令运行调试 (Debug) 版本的 RustDesk: target/debug/rustdesk 或者您想运行发行
关于DDexec DDexec是一种能够在Linux上使用无文件技术和隐秘技术运行二进制文件的方法,它可以使用dd工具来将Shell替换为其他进程。...众所周知,在Linux上运行一个程序,则这个程序必须以一个文件的形式存在,而且必须能够通过文件系统层次结构并以某种方式访问到它,这也是execve()的工作机制。...我们可以创建一个fd,并指向Shell(带有写入权限)的mem文件,此时子进程将使用这个fd并修改Shell的内存; 2、ASLR不会成为“拦路虎”,因为我们可以检查Shell的maps文件或其他信息来获取关于进程地址空间的相关信息...; 3、使用lseek()来对文件进行查询,在Shell的帮助下,我们可以使用dd工具轻松实现; 工具下载 广大研究人员可以使用下列命令将该项目源码克隆至本地: git clone https://...下面给出的是一个使用样例: base64 -w0 /bin/ls | bash ddexec.sh /bin/ls -lA 项目中还提供了一个ddsc.sh脚本,该脚本允许我们直接运行二进制代码,下面给出的是一段
libjpeg本身的构建没什么特别的,不过值得说道的是libjpeg存在一个高性能分支叫做libjpeg-turbo,通过汇编代码使用SIMD(Single Instruction, Multiple...构建libjpeg-turbo的关键指令如下所示: # 配置CMake cmake .....,指定构建类型 cmake --build ....--config RelWithDebInfo # 安装阶段,指定构建类型和安装目标 cmake --build ....不过有一点需要提示一下,libjpeg-turbo编译用到了汇编语言,因此需要指定一个汇编语言编译器NASM,只要是安装在默认目录就能够自动识别: 当然,不需要NASM也能构建成功,不过libjpeg-turbo
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。...1.文档编写目的 ---- 在CDH5.9版本及更新版本中,Hue新增一个全新工具从数据文件中创建Apache Solr的Collections,可以通过该工具轻松的将数据加载到Solr的Collection...本篇文章主要介绍如何使用Hue通过数据文件创建Collections。...注意:这里需要将所有Hue Server服务的配置文件进行修改。...温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 [583bcqdp4x.gif]
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门...现在,xmake v2.3.7 版本发布了,在新版本中,我们主要完善了 xmake 自身的稳定性和兼容性,通过两个月的不断迭代,修复了很多用户反馈的各种使用问题,使用体验和稳定性有了很大的提升。...而不需要关心 autotools/cmake 需要如何去配置使用和编译,毕竟 cmake 对于 windows 和 linux 平台,需要生成不同的构建文件,编译方式也是不同的,一会调用 make,一会调用...,通过 --trybuild=cmake 启用 cmake 的尝试编译模式,然后通过 -p android/iphoneos/mingw 切到对应的平台,对接对应的sdk,就可以使用相同的方式来快速实现交叉编译...,哪怕这个项目是使用 cmake 来维护的。
它还具有高度的可移植性:FFmpeg可以在各种构建环境,机器体系结构和配置下,跨Linux,Mac OS X,Microsoft Windows,BSD,Solaris等编译,运行并通过我们的测试基础架构...它包含可以由应用程序使用的libavcodec,libavutil,libavformat,libavfilter,libavdevice,libswscale和libswresample。...与ffmpeg,ffplay和ffprobe一样,最终用户也可以使用它们进行转码和播放。...: 我们把刚才下载下来的包进行解压: 解压后有四个文件:bin里面是安装的应用程序以及一些动态链接库: doc文件里面是一些相关关于ffmpeg的html说明文档: include里面是一些相关库的头文件...a、NASM cd ~/ffmpeg_sources && \ wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.
转载请以链接形式标明出处: 本文出自:103style的博客 ---- 官方文档 创建相关文件夹 cd $HOME mkdir ffmpeg_sources mkdir ffmpeg_build...binary-amd64/Packages 无法发起与 dl.google.com:80 (2404:6800:4005:805::200e) 的连接 - connect (101: 网络不可达) 则使用...---- 安装其他依赖 NASM cd ~/ffmpeg_sources && \ wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm...-2.14.02.tar.bz2 && \ tar xjvf nasm-2.14.02.tar.bz2 && \ cd nasm-2.14.02 && \ ....enable-nonfree && \ PATH="$HOME/bin:$PATH" make -j4 && \ make install && \ hash -r 执行完毕会在 $HOME/bin 目录下生成对应的文件
npm scripts 和二进制文件在 npm 项目的 package.json 文件中,你可以定义脚本命令,使用 scripts 字段。...环境一致性:在 CI/CD 管道中,通常会使用本地安装的 npm 包来确保构建和测试环境与开发环境一致。...通过使用 npm scripts,你可以避免这些跨平台问题,因为 npm 会自动根据操作系统设置正确的路径。自动化与 CI/CD 集成在 CI/CD 流水线中,通常会自动执行构建、测试和部署任务。...例如,当你在 GitHub Actions 或 Jenkins 中配置 CI 流水线时,可以通过执行 npm install 来安装所有依赖包,然后使用 npm run build 来构建项目。...因为依赖包是本地安装的,CI 流水线不会受到开发者本地环境中可能存在的全局包的影响,从而确保构建的一致性和可重复性。总结本地安装的 npm 包的二进制文件在 Node.js 项目中起着至关重要的作用。
二进制文件的安装目录下使用),如果系统输出类似下面的信息: nasm: ELF 32-bit LSB executable i386 (386 and up) Version 1 那么你的系统就是'ELF...NASM 会为你的输出文件选择一个文件名;具体如何做取决于目标文件的格式,对 于微软的目标文件格式('obj'和'win32'),它会去掉你的源文件名的'.asm'扩展 名(或者其他任何你喜欢使用的扩展名...就象'-o','-f'与输出文件格式之间的空格也是可选的,所以'-f elf'和'-felf'都是 合法的。 所有可使用的输出文件格式的列表可以通过运行命令'nasm -hf'得到。...一个具体文件格式的完整的可使用调试文件格式的列表可通过命令'nasm -f -y' 来得到。 这个选项在缺省状态下没有被构建时NASM 。...如何使用该选项的信息请参阅6.10 2.1.6 `-g' 选项:使调试信息有效。 该选项可用来在指定格式的输出文件中产生调试信息。
-y 安装NSAM cd ~/ffmpeg_sources curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02....tar.bz2 tar xjvf nasm-2.13.02.tar.bz2 cd nasm-2.13.02 ....disable-shared #终于过去,高兴坏了 make make install 安装FFmpeg # http://ffmpeg.org/releases/ 笔者这里用的是最新的开发版本,建议使用当前最新版本...enable-nonfree make # 这一步时间有点长 make install hash -r 现在编译完成,ffmpeg(也是ffprobe,ffserver,lame和x264)现在应该可以使用了...,笔者下边文章介绍安装过程中遇到错误及解决办法,以后介绍如何更新或删除FFmpeg ?
SDL官网:https://www.libsdl.org/ 1.3 yasm/nasm 旧版ffmpeg及x264使用yasm汇编器 Yasm是英特尔x86架构下的一个汇编器和反汇编器。...Yasm是一个完全重写的Netwide汇编器(NASM)。Yasm通常可以与NASM互换使用,并支持x86和x86-64架构。其许可协议为修订过的BSD许可证。...NASM官网:https://www.nasm.us/ 1.4 x264 x264是开源的h264编码器,使用非常广泛,综合性能不比商业编解码器差。.../make-Makefiles.bash 在上一行命令运行快结束时,出现cmake配置信息编辑界面,将CMAKE_INSTALL_PREFIX的值改成/home/think make make...如果机器上已经编译安装过FFmpeg,需要再次编译安装时,需要先执行make uninstall以删除旧版本的头文件和库文件,否则编译时可能优先使用已安装的旧的头文件或库文件,导致编译失败。
我这里只展示安装的步骤,升级可以通过上面的链接查找。...step1 yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make.../pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2 tar xjvf nasm-2.15.05.tar.bz2 cd nasm-2.15.05 ....stable --depth 2 https://bitbucket.org/multicoreware/x265_git cd ~/ffmpeg_sources/x265_git/build/linux cmake...源 yum install epel-release -y # 安装python3开发包 yum install python39-devel -y image.png 这里大概就有我们需要的头文件了
update -y && apt upgrade -y # ①.仅适用于基于 Debian 的发行版 sudo apt install -y git build-essential apt-utils cmake...dev golang-go qtbase5-dev libqt5websockets5-dev libspdlog-dev python3-dev libboost-all-dev mingw-w64 nasm...Payload选择Windows Shellcode,点击Generate将shellcode保存 设置 Harriet Payload 框架 Harriet可以将加密 shellcode 和函数调用,使用...SigThief 使用伪造的 Microsoft 证书对二进制文件进行签名 安装Harriet git clone https://github.com/assume-breach/Home-Grown-Red-Team.git
前言: 大家好,今天给大家分享一篇ffmpeg开发环境的搭建,我在很早之前也给搭建过ffmpeg源码的安装,但是并没有给大家去搭建开发环境,而且当时的版本也比较老,很多细节问题没有给大家展示如何解决.../configure 2、make -j8 && make install ok,这个操作就比较简单,你按照这个操作就行;第一次安装x264的话,通过重新安装nasm,是可以解决报错的,然后我们接着来安装...GPL(默认关闭) --enable-shared :构建共享库(默认关闭) --enable-version3:升级GPL到版本3(默认:关闭) --enable-nonfree:允许使用非免费的代码..., 产生的库和二进制程序将是不可再发行的 --prefix=/usr/local/ffmpeg:把ffmpeg编译出来的东西都放在这个路径下去 我们发现找不到libfdk_aac,那怎么解决呢,问题出在找不到它路径...为什么我们这里要这样操作,这里主要通过下面这个里面fdk-aac.pc这个文件去定位fdk-aac: 这个时候再执行刚才的那个配置,就可以解决这个问题,如果后期遇到类似的问题,都可以参考这种方法去解决