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

长沙推广型网站建设网络营销渠道有哪几种

长沙推广型网站建设,网络营销渠道有哪几种,大连网站建设公司哪家好,专注扬中网站建设文章目录 下载交叉编译工具链安装meson编写交叉编译配置文件编译glib编译libiconv编译libxml2编译libusb(暂时不编译,依赖的udev库我找不到)编译Aravis使用 自行编译的库都统一放到一个地方去,这样引用时方便一些,比如…

文章目录

  • 下载交叉编译工具链
  • 安装meson
  • 编写交叉编译配置文件
  • 编译glib
  • 编译libiconv
  • 编译libxml2
  • 编译libusb(暂时不编译,依赖的udev库我找不到)
  • 编译Aravis
  • 使用

自行编译的库都统一放到一个地方去,这样引用时方便一些,比如我源码放到OpenHarmony这里,而编译后install的东西放到OpenHarmony/install这里
在这里插入图片描述

下载交叉编译工具链

我的目标设备是aarch64架构的,所以我下载这个交叉编译工具链
https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/
在这里插入图片描述
解压后放在某个文件夹,并且将对应的路径添加到当前用户的.bashrc中,添加完后,还得记得source一下生效。

在这里插入图片描述
设置完之后,就可以直接通过aarch64-linux-gnu-xxx这样的方式来使用交叉编译工具了,方便。
在这里插入图片描述

安装meson

pip install meson

编写交叉编译配置文件

创建一个cross_aarch.txt,内容如下,后面有用。注意里面使用到的路径

#[constants]
#native_path =  'D:/harmonyOS/OpenHarmony/11/native'
#sysroot_path = 'D:/harmonyOS/OpenHarmony/11/native/sysroot'[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'[properties]
# 这个设置了也没生效
prefix = '/home/yong/Desktop/OpenHarmony/install'
include_directories = ['/home/yong/Desktop/OpenHarmony/install/include']
link_directories = ['/home/yong/Desktop/OpenHarmony/install/lib']
# 指定 pkg-config 的查找路径,貌似没用
#pkg_config_libdir = ['/home/yong/Desktop/OpenHarmony/install/lib/pkgconfig']# 编译glib时,这个组的内容都要注释掉
[built-in options]
c_args = ['-I/home/yong/Desktop/OpenHarmony/install/include']
c_link_args = ['-L/home/yong/Desktop/OpenHarmony/install/lib']
cpp_args = ['-I/home/yong/Desktop/OpenHarmony/install/include']
cpp_link_args = ['-L/home/yong/Desktop/OpenHarmony/install/lib'][binaries]
c = 'aarch64-linux-gnu-gcc'
cpp = 'aarch64-linux-gnu-g++'
ar = 'aarch64-linux-gnu-ar'
ld = 'aarch64-linux-gnu-ld'
objcopy = 'aarch64-linux-gnu-objcopy'
strip = 'aarch64-linux-gnu-strip'
pkg-config = 'pkg-config'

我的这个文件是放在’/home/yong/Desktop/OpenHarmony’这个路径下的,而其他需要编译的源码我也是解压后放这个文件夹,这就意味着后面每个需要用meson来构建的的库,在构建时都可以通过--cross-file ../cross_aarch64.txt来使用这个文件,就不用每个项目配一个了。
在这里插入图片描述

编译glib

下载glib
https://github.com/GNOME/glib/releases/tag/2.78.6
注意下载的glib不要太新,太新的话会报错(但是也不能低于2.59.1,因为meson是从这个版本才引入):

..\glib-2.85.1\meson.build:1:0: ERROR: Meson version is 0.59.2 but project requires >= 1.4.0

在这里插入图片描述
从aravis的meson.build文件,可以看到,大于等于2.52即可
在这里插入图片描述
下载后解压,并且将前面创建的文件拷贝到源码目录下
在这里插入图片描述

执行指令
--prefix指的是编译后的文件的安装路径,需要是绝对路径

meson setup --prefix=/home/yong/Desktop/OpenHarmony/install \
--cross-file ../cross_aarch64.txt builddir \
-Dlibmount=disabled \
-Dselinux=disabled  \
-Dtests=false \
-Dglib_debug=disabled \
-Dnls=disabled

在编译的过程中,会自动下载库;假如下载到一半的然后不下载的话,可能会报对应的子模块中的meson.build不存在,这时需要将子模块的文件夹删除在运行上述一遍指令。

等上面指令执行完,再执行下面指令

 ninja -C builddir/ninja -C builddir/ install

然后在指定的安装位置就得到了编译好的库了

编译libiconv

下载源码
https://www.gnu.org/software/libiconv/#TOCdownloading
在这里插入图片描述

./configure --prefix=/home/yong/Desktop/OpenHarmony/install --host=aarch64-linux-gnu
make
make install

编译libxml2

下载源码
https://github.com/GNOME/libxml2/releases/tag/v2.12.9
libxml2是用cmake构建的
在这里插入图片描述

在这里插入图片描述

添加之前编译的库的安装路径进来

CMAKE_INCLUDE_PATH 
CMAKE_LIBRARY_PATH

在这里插入图片描述
修改安装路径,取消LZMA
在这里插入图片描述
取消python
在这里插入图片描述

勾选Advanced,将以下参数填进去CMAKE_EXE_LINKER_FLAGS(具体路径要以你存放的路径为准)

-L/home/yong/Desktop/OpenHarmony/install/lib -lz -L/home/yong/Desktop/OpenHarmony/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/usr/lib -lm

在这里插入图片描述
然后点击 Configure Generate
然后到build文件夹

make
make install

编译libusb(暂时不编译,依赖的udev库我找不到)

https://github.com/libusb/libusb/releases

因为用到sysroot中的libudev,因此需要指定一下搜索路径

./autogen.sh
./configure

至此,Aravis所依赖的第三方库(glib、libxml2、libiconv等)我们都已经下载源码、编译好后安装到了指定的文件夹。

编译Aravis

下载源码
【Aravis: A vision library for genicam based cameras 】
解压,然后cd 到源码位置

执行指令
将我们前面安装的库的路径告诉系统,不然pkg-config会去本机上面找,找出来的是不对的

export PKG_CONFIG_PATH="/home/yong/Desktop/OpenHarmony/install/lib/pkgconfig"

由于前面的libusb无法编译,只能先禁用aravis对usb设备的支持,也就是编译出来的库只能支持Gige相机

meson setup  builddir -Dviewer=disabled -Dgst-plugin=disabled -Ddocumentation=disabled  -Dusb=disabled -Dintrospection=disabled --cross-file ../cross_aarch64.txt --prefix='/home/yong/Desktop/OpenHarmony/install'

然后编译、安装

ninja -C builddir
ninja -C builddir install

在这里插入图片描述

使用

将整个install文件夹拷贝到Windows平台上,然后再DevEco Studio中使用即可。

在项目的CMakeLists.txt中增加以下代码

# aravis
set(ARAVIS_ROOT "D:/harmonyOS/aravis")
target_include_directories(entry PRIVATE "${ARAVIS_ROOT}/include")
target_include_directories(entry PRIVATE "${ARAVIS_ROOT}/include/aravis-0.8")
target_include_directories(entry PRIVATE "${ARAVIS_ROOT}/include/glib-2.0")
target_include_directories(entry PRIVATE "${ARAVIS_ROOT}/lib/glib-2.0/include")
target_link_directories(entry PRIVATE "${ARAVIS_ROOT}/lib")
target_link_libraries(entry PRIVATE aravis-0.8 xml2)

编译时会报错,说libaravis-0.8.so有问题啥的。
这是因为libaravis-0.8.so是个在linux下的软链接,在windows下可能会有问题。因此要先备份好原有的库(我这里直接在最后加了个横杠),然后拷贝libaravis-0.8.so.0.8.33,然后将其改为 libaravis-0.8.so
在这里插入图片描述

然后拷贝以下库到arm64-v8a下面,拷贝的时候不能直接拷贝对应名字的,而是要拷贝同样名字前缀但是体积最大的那个,拷贝到arm64-v8a中,再更改名字。不然你拷贝的是软链接,没用。
在这里插入图片描述

在这里插入图片描述
编译然后运行,报这个错误。
在这里插入图片描述
在Ubuntu上用readelf 看看

readelf -d libaravis-0.8.so.0.8.33

在这里插入图片描述

可以使用patchelf直接从文件上去掉

patchelf --replace-needed "/home/yong/Desktop/OpenHarmony/install/lib/libxml2.so" "libxml2.so" libaravis-0.8.so.0.8.33

在这里插入图片描述
把该放过来的文件都搞过来了,但是程序还是崩了,不知道为啥。
在这里插入图片描述
报这个错误

relocating failed: symbol not found. dso=/data/storage/el1/bundle/libs/arm64/libglib-2.0.so.0 s=strtoll_l use_vna_hash=1 van_hash=6969197

在这里插入图片描述


参考
【交叉编译工具 aarch64-linux-gnu-gcc 的介绍与安装】
【meson 创建交叉编译】
【meson交叉编译glib2.76】
【linux交叉编译libiconv】
【cmake 头文件 库文件 路径搜索 CMAKE_INCLUDE_PATH CMAKE_LIBRARY_PATH】
【在幽兰上编译libusb】

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

相关文章:

  • 洋桥网站建设公司免费建站模板
  • app制作定制外包服务商eseo入门培训学多久
  • webportal自助建站seo技术助理
  • 永康网站建设专业公司百度广告联盟平台官网
  • 技术提供微信网站开发网站制作公司官网
  • 如何推广自己的产品让更多人来买网站seo诊断分析
  • 山东学生做自我评价的网站百度网盘客服24小时电话人工服务
  • 网站备案号在哪seo服务靠谱吗
  • 网站地图是什么样子的网络媒体
  • 多语言网站建设正规营销培训
  • 江阴网站制作设计知名的seo快速排名多少钱
  • led论坛网站建设网络营销推广
  • dreamweaver 怎么直接复制文字标题链接到别的网站环球网最新消息
  • 手机网站开发ios友链外链app
  • wap网站是什么意思做销售记住这十句口诀
  • 网站开发的方式关键词优化公司电话
  • 望城区城市建设投资集团门户网站百度热搜关键词排名
  • adobe可以做网站吗搜狗搜索引擎入口
  • 寮步网站建设哪家好友情链接的作用
  • 塘下建设银行网站简单的网站制作
  • 自己做网站难上海发布最新情况
  • 日本插画网站有哪些头条搜索是百度引擎吗
  • 中国建筑设计行业网福州seo公司排名
  • 新疆兵团建设网站乔拓云建站平台
  • 好网站建设公司业务网络服务提供者不履行法律行政法规规定
  • 网站建设什么语言比较好爱站seo工具包
  • 怪兽网站模板杭州疫情最新情况
  • 中小型网站建设与管理 唐军民今日重大国际新闻军事
  • 徐州做网站的哪个好seo新人培训班
  • 石家庄网站建设费用如何制作链接推广