当前位置: 首页 > wzjs >正文

合肥网上商城网站建设产品市场营销策划书

合肥网上商城网站建设,产品市场营销策划书,网站建设教程资源,360建筑网密码忘了esnap打包C/C程序与动态链接库(.so) 之前已经学会了snap基本的打包程序,现在试试打包C/C程序与动态链接库(.so) ssh : orangepi本地ip 密码 : orangepi 操作系统发行版: 基于 Ubun…

esnap打包C/C++程序与动态链接库(.so)

之前已经学会了snap基本的打包程序,现在试试打包C/C++程序与动态链接库(.so)

ssh  : orangepi@本地ip
密码 : orangepi

操作系统发行版: 基于 Ubuntu 20.04.6 LTS(Focal Fossa)的定制版本,专门为 Orange Pi 设备优化。PRETTY_NAME="Orange Pi 1.0.6 Focal"

目录

进入项目主目录:

整备项目结构:

添加对应文件的读写权限:

gcc编译主函数文件:

编写snap.yaml:

yaml文件解释: 

snap打包:

测试snap文件:

打包后完整命令交互过程列出:

重构snap:

删除snap:


 

进入项目主目录:

cd /home/orangepi/snap_packet_test/gccso/

整备项目结构:

.../gccso/

--------lib/

----------------libtest.so

--------meta/

 |----------------snap.yaml

--------src/

 |----------------testso.c

--------test.h

添加对应文件的读写权限:

这一步注意要先cd到对应文件目录再说:

chmod +rwx libtest.so
chmod +rwx testso.c

gcc编译主函数文件:

gcc testso.c -L. -ltest -o testso 

得到可执行程序,把它复制到项目大目录下

编写snap.yaml:

cd /home/orangepi/snap_packet_test/gccso/meta/ 

name: testso
version: '0.12'
summary: My test Snap
description: A test Snap that needs libtest.so
base: core22grade: stable
confinement: strictparts:testso:plugin: makesource: ../srcbuild-packages:- build-essentialstage-packages:- libtestmylib:plugin: nilsource: ../libstage: [libtest.so]prime: [libtest.so]apps:testso:command: testsoenvironment:LD_LIBRARY_PATH: $SNAP/usr/lib:$SNAP/lib

yaml文件解释: 

这里是AI生成的注释解析:

name: testso
version: '0.12'
summary: My test Snap
description: A test Snap that needs libtest.so
base: core22
  • name: Snap 包的名称(不可更改,除非重新打包)。
  • version: Snap 的版本号,可以自由修改(如 0.13)。
  • summary: 简短描述,可自定义。
  • description: 详细描述,可自定义。
  • base: 基础 Snap 镜像(core22 是 Ubuntu 22.04 的基础),通常不需要修改。
grade: stable
confinement: strict
  • grade: 发布等级(stabledevel),stable 表示正式版,devel 表示开发版。
  • confinement: 沙盒严格程度(strictclassic)。strict 是默认的安全模式,classic 会放宽限制(不推荐,除非必要)。
parts:testso:plugin: makesource: ../srcbuild-packages:- build-essentialstage-packages:- libtest
  • parts: 定义 Snap 的构建部分。
    • testso: 自定义部分名称。
    • plugin: make: 使用 make 插件编译代码(适用于 Makefile 项目)。
    • source: ../src: 源代码路径(相对于 snapcraft.yaml),可修改为实际路径。
    • build-packages: 构建时依赖的系统包(如 gccmake)。
    • stage-packages: 运行时需要的系统包(如 libtest)。如果 libtest 是自定义库,建议移除并改用下面的 mylib 部分。
mylib:plugin: nilsource: ../libstage: [libtest.so]prime: [libtest.so]
  • mylib: 自定义部分名称,用于打包本地库 libtest.so
    • plugin: nil: 表示不使用任何插件,手动管理文件。
    • source: ../lib: 本地库的路径(相对于 snapcraft.yaml),可修改为实际路径。
    • stage: [libtest.so]: 将 libtest.so 复制到 stage 目录(供后续步骤使用)。
    • prime: [libtest.so]: 将 libtest.so 复制到最终 Snap 包中。
apps:testso:command: testsoenvironment:LD_LIBRARY_PATH: $SNAP/usr/lib:$SNAP/lib
  • apps: 定义 Snap 的可执行命令。
    • testso: 自定义应用名称。
    • command: testso: 可执行文件名(相对于 Snap 的 bin 目录)。如果可执行文件不在根目录,需修改为完整路径(如 $SNAP/usr/bin/testso)。
    • environment: 运行时环境变量。
      • LD_LIBRARY_PATH: 显式指定库搜索路径,确保能找到 libtest.so。如果 libtest.so 在非标准路径(如 $SNAP/lib/mylib),需更新此路径。

LD_LIBRARY_PATH

  • 如果 libtest.so 被打包到 $SNAP/lib/mylib,修改为:
LD_LIBRARY_PATH: $SNAP/lib/mylib:$SNAP/usr/lib:$SNAP/lib

command 路径

  • 如果 testso 编译后不在 Snap 根目录,而是在 $SNAP/usr/bin,修改为:
command: usr/bin/testso

 

snap打包:

回到主目录打包snap:

cd /home/orangepi/snap_packet_test/gccso/

打包snap:

snapcraft pack .

打包成功:

 

测试snap文件:

将文件复制到其他文件夹:

cp testso_0.12_all.snap /home/orangepi/snap_packet_test/test_1/

转到对应的测试文件夹:

cd /home/orangepi/snap_packet_test/test_1/

安装打包好的snap文件:

sudo snap install --dangerous testso_0.12_all.snap

测试运行:

testso

打包后完整命令交互过程列出:

orangepi@orangepi3b:~/snap_packet_test/gccso$ snapcraft pack .
Packed testso_0.12_all.snap
orangepi@orangepi3b:~/snap_packet_test/gccso$ cp testso_0.12_all.snap /home/orangepi/snap_packet_test/test_1/
orangepi@orangepi3b:~/snap_packet_test/gccso$ cd /home/orangepi/snap_packet_test/test_1/
orangepi@orangepi3b:~/snap_packet_test/test_1$ sudo snap install --dangerous testso_0.12_all.snap
testso 0.12 installed
orangepi@orangepi3b:~/snap_packet_test/test_1$ testso
test1_print
test2_print
test3_print

重构snap:

在主项目路径可以通过 snapcraft clean 清除构建的snap

sudo snapcraft clean

删除snap:

在测试安装的 Snap 环境中,已安装的 Snap 包可以通过 snap remove 命令卸载

sudo snap remove testso

http://www.dtcms.com/wzjs/63138.html

相关文章:

  • 温州移动网站建设服务商西安seo按天收费
  • 哪种技术做网站容易论文答辩软文推广产品
  • 网站设计建设 武汉万网查询
  • 广西 网站开发网站建设与管理属于什么专业
  • 深圳网站建设 排行榜seo是搜索引擎营销吗
  • 阿里云 云虚拟主机 wordpress热门seo推广排名稳定
  • 如何建立微信网站网站建设制作
  • 公司互联网站全面改版小熊代刷推广网站
  • 搜索引擎营销与seo优化优化设计官网
  • wordpress 自定义字段插件宁波核心关键词seo收费
  • 建设银陕西省分行网站营销技巧培训ppt
  • 网站app用什么语言开发淘特app推广代理
  • 做网站总结体会危机公关处理五大原则
  • 做网站送优化百度官方营销推广平台加载中
  • 如何做网站活动杭州seo俱乐部
  • 自己做网站用软件百度首页排名优化公司
  • 网站空间租赁 香港seo网站诊断分析报告
  • 备案期间网站关闭百度一下首页登录入口
  • 学校网站建设运行简介百度打广告怎么收费
  • 天长街道两学一做网站怎么注册网站免费的
  • 个人网站做淘宝客容易封吗百度关键词搜索量排名
  • 泉州网站建设哪家专业seo营销外包
  • 网站做优化的必要性平台推广费用
  • 网站定时数据切换怎么做的教程推广优化网站排名
  • 有没有网站可以做地图百度站长工具网站提交
  • 酒店网站开发软文广告属于什么营销
  • 网站排名seo培训百度下载安装最新版
  • 阿里网站建设营销推广
  • 合肥做双语外贸网站竞价推广的基本流程
  • 在网站上做的h5如何发到微信上站长统计官网