怎么用优盘做网站登录密钥,wordpress改网站地址,经营范围 网站建设,天宫山缆车多少钱需要编译rsyslog,参考海思3536平台上rsyslog交叉编译、使用-CSDN博客和rsyslog移植#xff08;亲测成功#xff09;_rsyslog交叉编译-CSDN博客
首先下载了要用到的一些库的源码#xff0c;先交叉编译这些库
原来是在centos6上交叉编译的#xff0c;结果编译时报缺少软件要…需要编译rsyslog,参考海思3536平台上rsyslog交叉编译、使用-CSDN博客和rsyslog移植亲测成功_rsyslog交叉编译-CSDN博客
首先下载了要用到的一些库的源码先交叉编译这些库
原来是在centos6上交叉编译的结果编译时报缺少软件要安装 结果用yum安装不行还像又少东西又要用pip安装结果也不行整了半天换成ubuntu16-32位搭建交叉编译环境。
先编译各个模块
注意libestr要求版本大于等于0.1.9编译好各种库后开始没有把各种编译好的东西放到
统一的地方都是在各个模块的独自的安装目录下 基本上就是./configure --hostarm-linux-gnueabi --prefix/home/mission/rsyslog/libestr-0.1.9/build CCarm-hisiv400-linux-gcc 这样配置
在编译curl时先是git clone了代码编译报错configure: error: Unable to link function recv
后百度了说是代码有问题用curl-7.47.0代码就没有问题改用curl-7.47.0代码编译通过。
在配置rsyslog时执行了
./configure --hostarm-linux-gnueabi --prefix/home/mission/rsyslog/install --disable-liblogging_stdlog CCarm-hisiv400-linux-gcc 后报了说是找不到库模块要求加各种变量如
LIBESTR_CFLAGSLIBESTR_LIBS等这些
./configure --hostarm-linux-gnueabi --prefix/home/mission/rsyslog/rsyslog-8.1.6/build --disable-liblogging_stdlog CCarm-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的定义后看了代码发现是10的宏于是自己在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 --hostarm-linux-gnueabi --prefix/home/mission/rsyslog/install --disable-liblogging_stdlog CCarm-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 --hostarm-linux-gnueabi --prefix$(pwd)/install --disable-liblogging_stdlog CCarm-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
终于编译成功了感觉还是设置LDFLAGSPKG_CONFIG_PATH起作用了不用加上面的好多变量了如LIBESTR_LIBS等
上面的报错顺序可能不对记不清了但不影响
//程序编译好了结果测试能不能用时发现配置文件什么的得从别的系统上拷贝
还报错 最终又重新编译
最终设置
./configure --hostarm-linux-gnueabi --prefix/home/mission/rsyslog/install --disable-liblogging_stdlog CCarm-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用户的 所以最后无法使用