Build ACE for Linux

本文详细介绍了如何从源代码编译ACE库,并提供了一个简单的示例程序HelloACE,展示了如何使用ACE进行基本的日志输出。此外还包含了编译过程中可能遇到的问题及解决办法。
 

一  编译ACE

1 下载ACE,解压后放到/home/tony/Dev/ACE_wrappers 

2 配置环境变量   

    #vim /home/tony/.bashrc

    加入下面两行:

    ACE_ROOT=/home/tony/Dev/ACE_wrappers;export ACE_ROOT

    LD_LIBRARY_PATH=$ACE_ROOT/lib;export LD_LIBRARY_PATH

 

3 切换路径到$ACE_ROOT/ace/下,创建config.h,加入下面这一行:

    #include "ace/config-linux.h"
   

4 切换到$ACE_ROOT/include/makeinclude下,创建一个叫'platform_macros.GNU'的文件,加入下面两行

    static_libs=1  (如果此行不要 则不生成静态库)

    include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
   

5 通过MPC生成Makefile文件 (也有教程没有此步 未常试过)

    cd $ACE_ROOT

    $ACE_ROOT/bin/mwc.pl -type make $ACE_ROOT/ace/ace.mwc

 

6 如果第5步没有出错的话,那以,可以编译ACE了

    在$ACE_ROOT/ace目录下,运行

    make
   

7 生成好的库文件在$ACE_ROOT/lib下

二 编写HelloWord

1 建立HelloACE.cpp文件,内容如下:

 

 

2 建立Makefile

 

 

3 如果make出现如下问题
        make: *** 没有规则可以创建“all”需要的目标“__prebuild__”。 停止。

    则在makeinclude文件夹中的rules.common.GNU末尾追加一行
        __prebuild__:
       

4 如果make一切顺利,就可以找到HelloACE执行程序

[OHOS INFO] [NINJA] [13518/92105] COPY ../../developtools/ace_js2bundle/ace-loader/node_modules obj/developtools/ace_js2bundle/ace_loader_ark/node_modules [OHOS ERROR] [NINJA] [13453/92105] ACTION //device/board/hihope/rk3568/kernel:kernel(//build/toolchain/ohos:ohos_clang_arm64) [OHOS ERROR] [NINJA] FAILED: ../kernel/src_tmp/linux-5.10/boot_linux ../kernel/checkpoint/compile_check [OHOS ERROR] [NINJA] /usr/bin/env ../../device/board/hihope/rk3568/kernel/build_kernel.sh ../../kernel/linux/linux-5.10 /home/jrlc/wanyuan/openharmony5.1/out/rk3568/packages/phone/images /home/jrlc/wanyuan/openharmony5.1/device/board/hihope/rk3568 vendor/hihope/rk3568 /home/jrlc/wanyuan/openharmony5.1 rockchip rk3568 hihope linux-5.10 root default disable_lto_O0 enable_ramdisk [OHOS ERROR] [NINJA] ~/wanyuan/openharmony5.1/kernel/linux/linux-5.10 ~/wanyuan/openharmony5.1/out/rk3568 [OHOS ERROR] [NINJA] /home/jrlc/wanyuan/openharmony5.1/kernel/linux/linux-5.10 [OHOS ERROR] [NINJA] /home/jrlc/wanyuan/openharmony5.1/kernel/linux/linux-5.10 [OHOS ERROR] [NINJA] /home/jrlc/wanyuan/openharmony5.1/kernel/linux/linux-5.10 [OHOS ERROR] [NINJA] /home/jrlc/wanyuan/openharmony5.1/kernel/linux/linux-5.10 [OHOS ERROR] [NINJA] /home/jrlc/wanyuan/openharmony5.1/kernel/linux/linux-5.10 [OHOS ERROR] [NINJA] /home/jrlc/wanyuan/openharmony5.1/kernel/linux/linux-5.10 [OHOS ERROR] [NINJA] /home/jrlc/wanyuan/openharmony5.1/kernel/linux/linux-5.10 [OHOS ERROR] [NINJA] /home/jrlc/wanyuan/openharmony5.1/kernel/linux/linux-5.10 [OHOS ERROR] [NINJA] /home/jrlc/wanyuan/openharmony5.1/kernel/linux/linux-5.10 [OHOS ERROR] [NINJA] /home/jrlc/wanyuan/openharmony5.1/kernel/linux/linux-5.10 [OHOS ERROR] [NINJA] /home/jrlc/wanyuan/openharmony5.1/kernel/linux/linux-5.10 [OHOS ERROR] [NINJA] no changes to kernel, skip source copy. [OHOS ERROR] [NINJA] ../../device/board/hihope/rk3568/kernel/build_kernel.sh: line 180: ./make-ohos.sh: No such file or directory [OHOS INFO] User Cpu%: 1.1% [OHOS INFO] System Cpu%: 0.5% [OHOS INFO] Idle CPU%: 98.2% [OHOS INFO] Total Memory: 186.8GB [OHOS INFO] Free Memory: 33.5GB [OHOS INFO] Swap Memory: 0.0GB [OHOS INFO] Filesystem: overlay, Size: 55T, Used: 24T, Available: 32T, Use%: 44%, Mounted on: / [OHOS INFO] Filesystem: tmpfs, Size: 64M, Used: 0, Available: 64M, Use%: 0%, Mounted on: /dev [OHOS INFO] Filesystem: tmpfs, Size: 94G, Used: 0, Available: 94G, Use%: 0%, Mounted on: /sys/fs/cgroup [OHOS INFO] Filesystem: shm, Size: 64M, Used: 0, Available: 64M, Use%: 0%, Mounted on: /dev/shm [OHOS INFO] Filesystem: /dev/sda1, Size: 147G, Used: 72G, Available: 68G, Use%: 52%, Mounted on: /sbin/docker-init [OHOS INFO] Filesystem: /dev/mapper/vg1-lv1, Size: 55T, Used: 24T, Available: 32T, Use%: 44%, Mounted on: /opt [OHOS ERROR] [NINJA] Traceback (most recent call last): [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/containers/status.py", line 47, in wrapper [OHOS ERROR] [NINJA] return func(*args, **kwargs) [OHOS ERROR] [NINJA] ^^^^^^^^^^^^^^^^^^^^^ [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/modules/ohos_build_module.py", line 70, in run [OHOS ERROR] [NINJA] raise exception [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/modules/ohos_build_module.py", line 67, in run [OHOS ERROR] [NINJA] super().run() [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/modules/interface/build_module_interface.py", line 70, in run [OHOS ERROR] [NINJA] raise exception [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/modules/interface/build_module_interface.py", line 68, in run [OHOS ERROR] [NINJA] self._ninja() [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/util/timer_util.py", line 30, in inner [OHOS ERROR] [NINJA] res = func(*arg, **kwarg) [OHOS ERROR] [NINJA] ^^^^^^^^^^^^^^^^^^^ [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/modules/interface/build_module_interface.py", line 125, in _ninja [OHOS ERROR] [NINJA] self._target_compilation() [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/modules/ohos_build_module.py", line 112, in _target_compilation [OHOS ERROR] [NINJA] self.target_compiler.run() [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/services/ninja.py", line 39, in run [OHOS ERROR] [NINJA] self._execute_ninja_cmd() [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/services/ninja.py", line 70, in _execute_ninja_cmd [OHOS ERROR] [NINJA] SystemUtil.exec_command( [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/util/system_util.py", line 128, in exec_command [OHOS ERROR] [NINJA] LogUtil.get_failed_log(log_path) [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/util/log_util.py", line 209, in get_failed_log [OHOS ERROR] [NINJA] LogUtil.get_compiler_failed_log(log_path) [OHOS ERROR] [NINJA] File "/home/jrlc/wanyuan/openharmony5.1/build/hb/util/log_util.py", line 196, in get_compiler_failed_log [OHOS ERROR] [NINJA] raise OHOSException( [OHOS ERROR] [NINJA] exceptions.ohos_exception.OHOSException: COMPILE Failed! Please check error in /home/jrlc/wanyuan/openharmony5.1/out/rk3568/error.log, and for more build information in /home/jrlc/wanyuan/openharmony5.1/out/rk3568/build.log [OHOS ERROR] [NINJA] [OHOS ERROR] [NINJA] Code: 4000 [OHOS ERROR] [NINJA] [OHOS ERROR] [NINJA] Reason: COMPILE Failed! Please check error in /home/jrlc/wanyuan/openharmony5.1/out/rk3568/error.log, and for more build information in /home/jrlc/wanyuan/openharmony5.1/out/rk3568/build.log [OHOS ERROR] [NINJA] [OHOS ERROR] [NINJA] Error Type: Ninja build error [OHOS ERROR] [NINJA] [OHOS ERROR] [NINJA] Description: An unknown error occurred while executing 'ninja -C'. [OHOS ERROR] [NINJA] [OHOS ERROR] [NINJA] Solution: no solution [OHOS ERROR] [NINJA] =====build error===== jrlc@zhangguo:~/wanyuan/openharmony5.1$上面是使用鸿蒙源码编译内核版本由6.6换成5.10后产生的编译错误,是什么原因造成的,如何解决
11-28
数据集介绍:电力线目标检测数据集 一、基础信息 数据集名称:电力线目标检测数据集 图片数量: 训练集:2898张图片 验证集:263张图片 测试集:138张图片 总计:3299张图片 分类类别: 类别ID: 0(电力线) 标注格式: YOLO格式,包含对象标注信息,适用于目标检测任务。 数据格式:JPEG/PNG图片,来源于空中拍摄或监控视觉。 二、适用场景 电力设施监控与巡检: 数据集支持目标检测任务,帮助构建能够自动识别和定位电力线的AI模型,用于无人机或固定摄像头巡检,提升电力设施维护效率和安全性。 能源与公用事业管理: 集成至能源管理系统中,提供实时电力线检测功能,辅助进行风险 assessment 和预防性维护,优化能源分配。 计算机视觉算法研究: 支持目标检测技术在特定领域的应用研究,促进AI在能源和公用事业行业的创新与发展。 专业培训与教育: 数据集可用于电力行业培训课程,作为工程师和技术人员学习电力线检测与识别的重要资源。 三、数据集优势 标注精准可靠: 每张图片均经过专业标注,确保电力线对象的定位准确,适用于高精度模型训练。 数据多样性丰富: 包含多种环境下的电力线图片,如空中视角,覆盖不同场景条件,提升模型的泛化能力和鲁棒性。 任务适配性强: 标注格式兼容YOLO等主流深度学习框架,便于快速集成和模型开发,支持目标检测任务的直接应用。 实用价值突出: 专注于电力线检测,为智能电网、自动化巡检和能源设施监控提供关键数据支撑,具有较高的行业应用价值。
【弹簧阻尼器】基于卡尔曼滤波弹簧质量阻尼器系统噪声测量实时状态估计研究(Matlab代码实现)内容概要:本文围绕“基于卡尔曼滤波的弹簧质量阻尼器系统噪声测量与实时状态估计”展开研究,利用Matlab代码实现对系统状态的精确估计。重点在于应用卡尔曼滤波技术处理系统中存在的噪声干扰,提升对弹簧质量阻尼器系统动态行为的实时观测能力。文中详细阐述了系统建模、噪声特性分析及卡尔曼滤波算法的设计与实现过程,展示了滤波算法在抑制测量噪声、提高状态估计精度方面的有效性。同时,该研究属于更广泛的信号处理与状态估计技术应用范畴,适用于复杂动态系统的监控与控制。; 适合人群:具备一定控制系统理论基础和Matlab编程经验的高校研究生、科研人员及工程技术人员,尤其适合从事动态系统建模、状态估计与滤波算法研究的相关人员。; 使用场景及目标:①应用于机械、航空航天、自动化等领域中对振动系统状态的高精度实时估计;②为噪声环境下的传感器数据融合与状态预测提供算法支持;③作为卡尔曼滤波算法在实际物理系统中应用的教学与科研案例。; 阅读建议:建议读者结合Matlab代码实践,深入理解系统建模与滤波器设计的关键步骤,关注噪声建模与滤波参数调优对估计性能的影响,并可进一步拓展至扩展卡尔曼滤波(EKF)或无迹卡尔曼滤波(UKF)在非线性系统中的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值