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

海思arm-hisiv400-linux-gcc 交叉编译rsyslog 记录心得

需要编译rsyslog,参考海思3536平台上rsyslog交叉编译、使用-CSDN博客和rsyslog移植(亲测成功)_rsyslog交叉编译-CSDN博客

首先下载了要用到的一些库的源码,先交叉编译这些库

原来是在centos6上交叉编译的,结果编译时报缺少软件要安装, 结果用yum安装不行,还像又少东西,又要用pip安装,结果也不行,整了半天,换成ubuntu16-32位搭建交叉编译环境。

先编译各个模块

注意libestr要求版本大于等于0.1.9,编译好各种库后,开始没有把各种编译好的东西放到

统一的地方,都是在各个模块的独自的安装目录下

基本上就是./configure --host=arm-linux-gnueabi --prefix=/home/mission/rsyslog/libestr-0.1.9/build CC=arm-hisiv400-linux-gcc 这样配置

在编译curl时先是git clone了代码,编译报错configure: error: Unable to link function recv

后百度了说是代码有问题用curl-7.47.0代码就没有问题,改用curl-7.47.0代码编译通过。

在配置rsyslog时,执行了

./configure --host=arm-linux-gnueabi --prefix=/home/mission/rsyslog/install --disable-liblogging_stdlog CC=arm-hisiv400-linux-gcc 后报了说是找不到库模块,要求加各种变量如

LIBESTR_CFLAGS,LIBESTR_LIBS等这些

./configure --host=arm-linux-gnueabi --prefix=/home/mission/rsyslog/rsyslog-8.1.6/build --disable-liblogging_stdlog CC=arm-hisiv400-linux-gcc LIBESTR_CFLAGS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/include LIBESTR_LIBS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/lib LIBLOGGING_STDLOG_CFLAGS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/include LIBLOGGING_STDLOG_LIBS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/lib JSON_C_CFLAGS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/include JSON_C_LIBS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/lib LIBUUID_CFLAGS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/include LIBUUID_LIBS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/lib LIBGCRYPT_LIBS=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/lib

加了这些模块的编译头文件和库文件路径后,执行make,

//这里开始下面的问题,原来是可以避免的,只要设置正确即可,看文章最后的编译设置

后又出现编译时找到TRUE,FALSE的定义,后看了代码发现是1,0的宏,于是自己在config.h里手动加了宏定义

#define TRUE 1

#define FALSE 0

再后来出现编译undefined reference to `rpl_realloc'

百度了,说是config.h里定义了宏,认为没有malloc函数,于是用rpl_realloc替换,把头文件里的定义给注释了

再编译报expected identifier or '(' before '__extension__' extern char *strdup(__cons

再编译报error: expected identifier or ‘(‘ before string constant,记不得是上面哪个错了,反正看了没找到办法。就看别人的教程,换了个代码版本试试,之前的是git clone的,改用rsyslog-8.2406.0代码。

再编译说是找不到lexer.c文件,于是locate lexer.c定位了下,在别的版本的代码里就拷贝过来整个grammar目录

再编译说是我上面列的路径/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/lib是个目录,意思不是文件,

后来我看makefilej里感觉 这些变量指的是各自的库和头文件路径就换成了

./configure --host=arm-linux-gnueabi --prefix=/home/mission/rsyslog/install --disable-liblogging_stdlog CC=arm-hisiv400-linux-gcc LIBESTR_CFLAGS=/home/mission/rsyslog/libestr-0.1.9/build/include LIBESTR_LIBS=/home/mission/rsyslog/libestr-0.1.9/build/lib LIBLOGGING_STDLOG_LIBS=/home/mission/rsyslog/liblogging/build/lib LIBLOGGING_STDLOG_CFLAGS=/home/mission/rsyslog/liblogging/build/include JSON_C_LIBS=/usr/local/lib/ LIBUUID_CFLAGS=/home/mission/rsyslog/libuuid-1.0.3/build/include LIBUUID_LIBS=/home/mission/rsyslog/libuuid-1.0.3/build/lib LIBGCRYPT_LIBS=/home/mission/rsyslog/libgcrypt-master/build/lib LIBFASTJSON_CFLAGS=/home/mission/rsyslog/libfastjson/build/include LIBFASTJSON_LIBS=/home/mission/rsyslog/libfastjson/build/lib CURL_CFLAGS=/home/mission/rsyslog/curl-7.47.0/build/include CURL_LIBS=/home/mission/rsyslog/curl-7.47.0/build/lib ZLIB_LIBS=/home/mission/rsyslog/zlib-1.3.1 LDFLAGS="-L/home/mission/rsyslog/lib -lestr -lfastjson -lz"

再编译说是找不到各个库的链接实现 如找不到fjson_object_to_json_string,后又看上面的教程。

改进了配置,把各个模块的安装文件全放到一个目录里install,生成的库目录lib全统一放到rsyslog/lib下

./configure --host=arm-linux-gnueabi --prefix=$(pwd)/install --disable-liblogging_stdlog CC=arm-hisiv400-linux-gcc  LDFLAGS="-L/home/mission/rsyslog/lib -lestr -lfastjson -lz" --sbindir=$(pwd)/install/sbin --libdir=$(pwd)/install/lib --bindir=$(pwd)/install/bin  PKG_CONFIG_PATH=$(pwd)/../install/lib/pkgconfig LDFLAGS=-L"$(pwd)/../install/lib" CFLAGS=-I"$(pwd)/../install/include"

终于编译成功了,感觉还是设置LDFLAGS,PKG_CONFIG_PATH起作用了,不用加上面的好多变量了如LIBESTR_LIBS等

上面的报错顺序可能不对,记不清了,但不影响

//程序编译好了,结果测试能不能用时,发现,配置文件什么的得从别的系统上拷贝

还报错

最终又重新编译

最终设置

./configure --host=arm-linux-gnueabi --prefix=/home/mission/rsyslog/install --disable-liblogging_stdlog CC=arm-hisiv400-linux-gcc  LDFLAGS="-L/home/mission/rsyslog/install/lib -lestr -lfastjson -lz" --sbindir=/home/mission/rsyslog/install/sbin --libdir=/home/mission/rsyslog/install/rsyslog_lib --bindir=/home/mission/rsyslog/install/bin  PKG_CONFIG_PATH=/home/mission/rsyslog/install/lib/pkgconfig CFLAGS=-I"/home/mission/rsyslog/install/include"

直接make,make install 即可没有任何问题

又发现这个系统精简太多了,只有一个root用户,没有添加用户命令,这里应该是要有syslog用户的

所以最后无法使用

相关文章:

海思arm-hisiv400-linux-gcc 交叉编译rsyslog 记录心得

需要编译rsyslog,参考海思3536平台上rsyslog交叉编译、使用-CSDN博客和rsyslog移植(亲测成功)_rsyslog交叉编译-CSDN博客 首先下载了要用到的一些库的源码,先交叉编译这些库 原来是在centos6上交叉编译的,结果编译时报缺少软件要…...

IDEA工具中Java语言写小工具遇到的问题

一:读取excel时遇到 org/apache/poi/ss/usermodel/WorkbookProvider 解决办法: 在pom.xml中把poi的引文包放在最前面即可(目前就算放在最后面也不报错了,不知道为啥) 二:本地maven打包时,没有…...

2-38 基于matlab的蚁群算法优化无人机uav巡检

基于matlab的蚁群算法优化无人机uav巡检,巡检位置坐标可根据需求设置,从基地出发,返回基地,使得路径最小。可设置蚁群数量,信息素系数。输出最佳路线长度。程序已调通,可直接运行。 2-38 蚁群算法优化无人…...

解决selenium打印保存为PDF时图片未加载成功的问题

使用selenium打印网页时,如果程序运行很快的话,可能会导致图片没有加载成功即进行了保存,出现这个问题最初的思考是在执行打印任务时使用js进行强制等待,后发现实现效果并不好。在加载页面时使用自动下滑的方式将网页拉到底&#…...

如何将PDF转换成可以直接编辑的CAD图纸?

PDF图纸是为了让用户更好的阅览CAD文件,但是,当我们想要对其进行编辑的时候,PDF图纸就是一个麻烦了。那么PDF转换成CAD后可以编辑吗?如何将PDF转换成可以直接编辑的CAD图纸呢?本篇给你答案。 1、启动迅捷CAD编辑器&…...

【STM32】理解时钟树(图示分析)

文章目录 时钟系统什么是时钟时钟树简化图示类比示例时钟树详解时钟源系统时钟配置各总线时钟外设时钟 时钟系统 什么是时钟 时钟在电子和计算机系统中指的是生成周期性信号的电路或设备,这种周期性信号用于同步系统内的各种操作。时钟信号通常是方波,…...

动态内存四个函数

文章目录 1. malloc2. calloc3. realloc4. free 在C语言中&#xff0c;malloc、calloc、realloc 和 free 是用于动态内存管理的标准库函数&#xff0c;它们定义在 <stdlib.h> 头文件中。以下是这些函数的用法&#xff1a; 1. malloc malloc 函数用于在堆区分配指定大小…...

DevExpress WPF中文教程 - 为项目添加GridControl并将其绑定到数据

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…...

高性能分布式IO系统BL205 OPC UA耦合器

边缘计算是指在网络的边缘位置进行数据处理和分析&#xff0c;而不是将所有数据都传送到云端或中心服务器&#xff0c;这样可以减少延迟、降低带宽需求、提高响应速度并增强数据安全性。 钡铼BL205耦合器就内置边缘计算功能&#xff0c;它不依赖上位机和云平台&#xff0c;就能…...

live555 rtsp服务器实战之doGetNextFrame

live555关于RTSP协议交互流程 live555的核心数据结构值之闭环双向链表 live555 rtsp服务器实战之createNewStreamSource live555 rtsp服务器实战之doGetNextFrame live555搭建实时播放rtsp服务器 注意&#xff1a;该篇文章可能有些绕&#xff0c;最好跟着文章追踪下源码&…...

Nginx系列-3 servername优先级和location优先级和常用正则表达式

1.正则表达式和分组 由于Nginx配置文件中经常出现正则表达式&#xff0c;因此本章节专门对常见的正则表达式进行简单介绍。 [1] 开始与结束 ^表示匹配输入字符串的开始 $表示匹配输入字符串的结束[2] 匹配次数 ?表示匹配0次或者1次 表示匹配1次或多次 *表示匹配0从或多次…...

python—爬虫爬取电影页面实例

下面是一个简单的爬虫实例&#xff0c;使用Python的requests库来发送HTTP请求&#xff0c;并使用lxml库来解析HTML页面内容。这个爬虫的目标是抓取一个电影网站&#xff0c;并提取每部电影的主义部分。 首先&#xff0c;确保你已经安装了requests和lxml库。如果没有安装&#x…...

实现图片拖拽和缩小放大功能。

1. 前言 不知道各位前端小伙伴蓝湖使用的多不多&#xff0c;反正我是经常在用&#xff0c;ui将原型图设计好后上传至蓝湖&#xff0c;前端开发人员就可以开始静态页面的的编写了。对于页面细节看的不是很清楚可以使用滚轮缩放后再拖拽查看&#xff0c;还是很方便的。于是就花了…...

昇思25天学习打卡营第18天|munger85

DCGAN生成漫画头像 首先肯定是下载训练数据&#xff0c;而这些训练数据就是一些卡通头像。后来我们会看到这个具体的头像 就像其他的数据集目录一样&#xff0c;它是由一些目录和这个目录下面的文件组成的数据集。 有相当多的图片。所以可以训练出来比较好的效果。 图片的处理…...

nginx配置文件说明

Nginx的配置文件说明 Nginx配置文件的主要配置块可以分为三个部分&#xff1a;全局配置块&#xff08;events和http块&#xff09;&#xff0c;events块和http块。这三个部分共同定义了Nginx服务器的整体行为和处理HTTP请求的方式。 全局配置块&#xff1a; 包含了影响Nginx服…...

用不同的url头利用Python访问一个网站,把返回的东西保存为txt文件

这个需要调用requests模块&#xff08;相当于c的头文件&#xff09; import requests 还需要一个User-Agent头&#xff08;这个意思就是告诉python用的什么系统和浏览器&#xff09; Google Chrome&#xff08;Windows&#xff09;: Mozilla/5.0 (Windows NT 10.0; Win64; x64…...

一文掌握Prometheus实现页面登录认证并集成grafana

一、接入方式 以保护Web站点的访问控制&#xff0c;如HTTP 服务器配置中实现安全的加密通信和身份验证&#xff0c;保护 Web 应用程序和用户数据的安全性。 1.1 加密密码 通过httpd-tools工具包来进行Web站点加密 yum install -y httpd-tools方式一&#xff1a;通过htpasswd生…...

欢迎来到 Mint Expedition:Web3 和 NFT 的新时代开始

7 月 15 日&#xff0c;Mint Expedition 正式开启&#xff0c;作为 Mint 生态系统的旗舰项目&#xff0c;将彻底变革 Web3 和 NFT 去中心化应用&#xff01; Mint Expedition 是 Mint 的最新航程&#xff0c;延续了 Mint Forest 的成功。Mint Forest 吸引了超过 41.4 万独立用…...

针对环境构图的全局一致性扫描点云数据对齐(Graph SLAM)

本算法是一个经典的&#xff0c;针对SLAM&#xff08;simultaneous localization and mapping 即时定位与地图构建&#xff09;问题而提出的算法。该算法的提出者是Feng Lu和Evangelos Milios&#xff0c;他们在本算法中开创了通过全局优化方程组以减少约束引入的误差来进一步优…...

Matlab学习笔记01 - 基本数据类型

Matlab学习笔记01 - 基本数据类型 1、数据类型转换2、矩阵2.1 访问单个矩阵元素2.2 访问多个矩阵元素2.3 矩阵转置 3、字符与字符串4、数值与字符串5、元胞数组 1、数据类型转换 十进制转十六进制字符串‘FF’ >> hex2dec(3ff)ans 1023十进制转十六进制字符串 >>…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...