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

广州企业网站设计制作企业用什么邮箱比较好

广州企业网站设计制作,企业用什么邮箱比较好,怎么做视频解析网站,外部调用wordpress 热门文章编译工程之际#xff0c;记录一下编译过程#xff0c;免得后续遗忘#xff0c;总结下来chip-tool 交叉编译涉及到的知识点#xff1a; 需要了解如何支持交叉编译#xff0c;基于GN编译框架需要理解应用库如何交叉编译#xff0c;理解pkg-config的使用meson 编译#xf…编译工程之际记录一下编译过程免得后续遗忘总结下来chip-tool 交叉编译涉及到的知识点 需要了解如何支持交叉编译基于GN编译框架需要理解应用库如何交叉编译理解pkg-config的使用meson 编译主要是编译glib 用到 工具链准备 应该知道交叉编译用到的编译链接库、包含头文件路径都应该是工具链可以默认可以搜索到的路径。 可以利用下面命令查看 echo main(){} | arm-buildroot-linux-gnueabi-gcc -E -v -经过试验输出如下 Using built-in specs. COLLECT_GCC/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/bin/arm-buildroot-linux-gnueabi-gcc.br_real Target: arm-buildroot-linux-gnueabi Configured with: ./configure --prefix/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32 --sysconfdir/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/etc --enable-static --targetarm-buildroot-linux-gnueabi --with-sysroot/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot --enable-__cxa_atexit --with-gnu-ld --disable-libssp --disable-multilib --disable-decimal-float --with-gmp/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32 --with-mpc/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32 --with-mpfr/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32 --with-pkgversionBuildroot 2019.11.1 --with-bugurlhttp://bugs.buildroot.net/ --disable-libquadmath --enable-tls --enable-threads --with-isl/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32 --with-floatsoft --with-abiaapcs-linux --with-cpucortex-a9 --with-floatsoft --with-modearm --enable-languagesc,c --with-build-time-tools/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/bin --enable-shared --disable-libgomp Thread model: posix gcc version 9.2.0 (Buildroot 2019.11.1) COLLECT_GCC_OPTIONS-Os -pipe -E -v -mcpucortex-a9 -mfloat-abisoft -mabiaapcs-linux -marm -mtls-dialectgnu -marcharmv7-ampsec/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/libexec/gcc/arm-buildroot-linux-gnueabi/9.2.0/cc1 -E -quiet -v -isysroot /opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot - -mcpucortex-a9 -mfloat-abisoft -mabiaapcs-linux -marm -mtls-dialectgnu -marcharmv7-ampsec -Os ignoring nonexistent directory /opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot/usr/local/include #include ... search starts here: #include ... search starts here:/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/lib/gcc/arm-buildroot-linux-gnueabi/9.2.0/include/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/lib/gcc/arm-buildroot-linux-gnueabi/9.2.0/include-fixed/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/lib/gcc/arm-buildroot-linux-gnueabi/9.2.0/../../../../arm-buildroot-linux-gnueabi/include/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot/usr/include End of search list. # 1 stdin # 1 built-in # 1 command-line # 31 command-line # 1 /opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot/usr/include/stdc-predef.h 1 3 4 # 32 command-line 2 # 1 stdin main(){} COMPILER_PATH/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/libexec/gcc/arm-buildroot-linux-gnueabi/9.2.0/:/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/libexec/gcc/arm-buildroot-linux-gnueabi/9.2.0/:/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/libexec/gcc/arm-buildroot-linux-gnueabi/:/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/lib/gcc/arm-buildroot-linux-gnueabi/9.2.0/:/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/lib/gcc/arm-buildroot-linux-gnueabi/:/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/lib/gcc/arm-buildroot-linux-gnueabi/9.2.0/../../../../arm-buildroot-linux-gnueabi/bin/ LIBRARY_PATH/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/lib/gcc/arm-buildroot-linux-gnueabi/9.2.0/:/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/lib/gcc/arm-buildroot-linux-gnueabi/9.2.0/../../../../arm-buildroot-linux-gnueabi/lib/:/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot/lib/:/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot/usr/lib/ COLLECT_GCC_OPTIONS-Os -pipe -E -v -mcpucortex-a9 -mfloat-abisoft -mabiaapcs-linux -marm -mtls-dialectgnu -marcharmv7-ampsec通过以上打印可以看到 #include ... search starts here: #include ... search starts here:指向了默认头文件的搜索路径这里貌似看不到链接库路径为此后需要设置链接库路径埋下伏笔 交叉编译脚本 先说下结果编译用的是32位工具链使用的编译命令是 ./scripts/examples/gn_build_example.sh examples/chip-tool/ out/bcm6756 target_cpuarm target_oslinux脚本里编译大概分俩类标准编译以及自定义编译 diff --git a/build/toolchain/linux/BUILD.gn b/build/toolchain/linux/BUILD.gn index abc61ab2bf..7eb20fbbf6 100644 --- a/build/toolchain/linux/BUILD.gnb/build/toolchain/linux/BUILD.gn-49,7 49,7 gcc_toolchain(linux_x86_clang) {}gcc_toolchain(linux_arm_gcc) {1. _toolprefix arm-linux-gnueabihf-2. _toolprefix /opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/bin/arm-buildroot-linux-gnueabi-cc ${_toolprefix}gcccxx ${_toolprefix}g可以看到这里直接修改了基于32位平台的工具链最好的办好是自己增加一个custom 工具链关于custom工具链支持后续正式项目采用 交叉编译脚本解读 ./scripts/examples/gn_build_example.sh examples/chip-tool/ out/bcm6756 target_cpuarm target_oslinux以connectedhomeip 作为主目录编译的入口是 ./build/coinfig/BUILDCONFIG.gn这个是GN编译框架规定的可以参照最简单的GN编译理解框架是一样的。 上图原文链接https://pingzhou.site/notes/gn_101.html 比较清晰的展示目录结构帮助理解。基本分析了下SDK的编译因为matter协议可以理解为跨平台的应用所以编译目录结构以及功能上进行了模块话处理可以通过import 导入一个文件变量类似于C语言中的include 函数而且定义了template类似于C语言中的函数可以细化管理整个编译命令。 为了帮助理解编译可以通过print() 函数打印变量值 依赖库编译 先说一下结论主要是依赖openssl 和glib库如果之前编译过glib库就会知道glib库有自己的依赖比如zlib库以及libffi库。 准备交叉编译库安装目录 /opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot/usr/openssl 交叉编译 1.代码clone 使用的是openssl-1.1.1l.tar.gz 2.解压、编译 ./config no-asm shared --prefix/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot/usr --cross-compile-prefixarm-buildroot-linux-gnueabi-–prefix 指定了编译安装目录 --cross-compile-prefix 指定工具链信息 3.修改Makefile 去掉m64相关 4.make 5.sudo make install glib库交叉编译 代码中编译使用glib2.45.1版本的是不行的会报函数G_SOURCE_FUNC找不到 因为交叉编译的库都应该来自于自己编译的库文件所以我搜索了下glib2.45.1源码中是没有该函数定义的所以找不到之后下载了glib2.76.0搜索后发现能找到函数定义于是重新编译了库后面就没再报这个错误了。 glib库2.6以上就采用了meson编译所以需要熟悉一下meson的编译跑一下简单历程熟悉下用法glib2.76.0库有一个好处是会自己下载依赖库不用像glib2.45.1 需要手动安装依赖 需要注意的是meson install 安装时可能会报错提示 Meson build error ModuleNotFoundError: No module named mesonbuild这里是meson安装出问题了不能用普通用户权限必须sudo 权限下安装卸载掉超级用户权限安装meson即可 参考链接https://askubuntu.com/questions/1225195/meson-build-error-modulenotfounderror-no-module-named-mesonbuild glib2.76.0编译在源码目录里新建一个脚本build.sh执行会自动编译亲测可用。最后是手动安装的sudo meson install #!/bin/bash set -eDEVEL/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot/usr/if [ -d _build ];then rm -r _build fi mkdir _buildarcharm-buildroot-linux-gnueabi- sys_root/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot #创建交叉编译配置文件cross_file.txt#还可设置c_args等等类似 CFLAGS echo [constants] cross_file.txt echo arch ${arch} cross_file.txt echo [binaries] cross_file.txt echo c arch gcc cross_file.txt echo cpp arch g cross_file.txt echo ar arch ar cross_file.txt echo ld arch ld cross_file.txt echo srtip arch strip cross_file.txt echo sys_root ${sys_root} cross_file.txt echo pkg_config_libdir ${sys_root}/usr/lib/pkgconfig cross_file.txt#编译结果可运行平台的架构 echo [host_machine] cross_file.txt echo system linux cross_file.txt echo cpu_family arm cross_file.txt echo cpu armv7hl cross_file.txt echo endian little cross_file.txt#类似于configure功能 meson configure 获取到可配置项 echo [project options] cross_file.txt echo prefix /opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot/usr cross_file.txt echo selinux disabled cross_file.txt echo libelf disabled cross_file.txt#类似于执行configure meson setup _build --cross-file cross_file.txt cd _build #编译 类似于make ninja cd ../ #类似于make install DESTDIR$DEVEL DESTDIR$DEVEL meson installmatter交叉编译 需要设置链接库路径环境变量新建一个set_env.sh脚本设置环境 xingxing-virtual-machine:~/work$ cat set_env.sh #export PATH$PATH::/opt/crosstools-aarch64-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/binexport PATH$PATH:/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/bin export PKG_CONFIG_PATH/opt/toolchains/crosstools-arm-gcc-9.2-linux-4.19-glibc-2.30-binutils-2.32/arm-buildroot-linux-gnueabi/sysroot/usr/lib/pkgconfig这里必须要执行否则系统会因为找不到合适的链接目录链接到宿主机比如x86版本glib库报一些变量值溢出问题 编译成功 梳理一下过程设置环境变量执行上面的set_env.sh交叉编译所需库安装好然后执行一条脚本即可编译成功源码SDK不需要修改 编译完竟然有170多MB使用strip 后17M。这应用够大的
http://www.hkea.cn/news/14332746/

相关文章:

  • 网站设计需要什么证湛江seo排名外包
  • 怎么管理网站添加代码百度推广创意范例
  • 手机网站建设与制作昆明电商网站建设
  • 网站 wordpress 公众号自己做网站跟域名怎样做
  • 怎么创建网站建设网站做优化有什么好处
  • 上海网站制作商兰亭集势网站模板
  • 网站怎么建设高端公司wordpress fox
  • python 网站开发 案例最好的cms开源
  • 千图素材网站网页设计与制作心得体会1500字
  • 萧山网站优化清华大学精品课程网站
  • 本地网站怎么做网页设计模板代码网站
  • 大型网站维护费一年多少wordpress外链略缩图
  • 网站做次级页面邢台做网站推广费用
  • 怎么让网站被收录长春网站只长春网站制作做
  • 竹子建站怎么样贸易公司如何找客户
  • 临沂哪家做网站最好成品网站源码免费
  • html做的网站排版错误郴州网站优化
  • 网站文章不收录的原因wordpress调用多媒体
  • 艺梵科技 网站建设百度推广seo自学
  • 哪个域名网站好百度打网站名称就显示 如何做
  • 网站建设功能列表百度账号怎么注册
  • 上海韵茵网站建设编程网站排名
  • 无锡大型设计网站报价关于网站开发的一些论文
  • 生态建设研究所网站新手建网站
  • 网站建设试用建设部注册人员查询
  • 四川建设网官方网站wordpress 页眉
  • 杭州企业网站建设方案网站建设费税率多少
  • 腾讯建设网站首页奋进新征程
  • 酒店网站模版东坑镇网站建设公司
  • 南通市住房建设局网站微信公众平台网页