首页 > 其他分享 >apache-log4cxx编译问题

apache-log4cxx编译问题

时间:2024-08-29 18:04:29浏览次数:15  
标签:apr util 编译 usr apache local log4cxx

问题

由于项目需要用到c++日志系统log4cxx,记录安装log4cxx库遇到的坑。

环境准备

  • 系统ubuntu 18.04
  • gcc编译器7.5.0
  • Linux forlinx 4.4.189 aarch64 GNU/Linux

已知:

  1. log4cxx 是一个依赖于 aprapr-util 的 C++ 日志库。
  2. apr 是 Apache 提供的一个支持跨平台的运行时库。
  3. apr-utilapr 的一个扩展库,提供了更多实用的功能和数据结构

所以需要安装三个库:

  1. log4cxx官方下载地址:https://logging.apache.org/log4cxx/latest_stable/download.html
  2. aprapr-util官方下载地址:https://apr.apache.org/download.cgi

编译

注意:需要按照顺序编译!

  • 编译apr,指定生成路径/usr/local/apr
tar -xvf apr-1.7.4.tar.gz
cd apr-1.7.4
./configure --prefix=/usr/local/apr
make -j4
make install
  • 编译apr-util,指定生成路径/usr/local/apr-util`,--with-apr指定APR库路径,避免依赖问题
tar -xvf apr-util-1.6.3.tar.gz
cd apr-util-1.6.3
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make -j4
make install
tar -xvf apache-log4cxx-1.2.0.tar.gz
cd apache-log4cxx-1.2.0
mkdir build
cd build
cmake ..

进行到cmake这一步时,报错:No package 'apr-1' found

找不到apr-1的包,我不是安装在/usr/local/apr目录下了吗?


看网上说,在运行cmake配置命令时指定APR路径,但是,依然没有解决问题。

cmake -DAPR_INCLUDE_DIR=/usr/local/apr/include \
      -DAPR_LIBRARY=/usr/local/apr/lib/libapr-1.so \
      -DAPRUTIL_INCLUDE_DIR=/usr/local/apr-util-1/include \
      -DAPRUTIL_LIBRARY=/usr/local/apr-util-1/lib/libaprutil-1.so \
      ..

解决方法

只需设置一下所需库的PKG_CONFIG_PATH路径

PKG_CONFIG_PATH路径下,".pc" 文件定义了库的编译和链接选项

APR库的pc文件路径/usr/local/apr/lib/pkgconfig/apr-1.pc

export PKG_CONFIG_PATH=/usr/local/apr/lib/pkgconfig:$PKG_CONFIG_PATH

再次编译

同样的操作

export PKG_CONFIG_PATH=/usr/local/apr-util/lib/pkgconfig:$PKG_CONFIG_PATH

再次编译成功!!!

标签:apr,util,编译,usr,apache,local,log4cxx
From: https://www.cnblogs.com/jj-Must-be-sucessful/p/18387292

相关文章

  • YOLOv8添加DCNv4可变性卷积(windows系统成功编译),全网最详细教程
    原论文摘要引入了可变形卷积v4(DCNv4),这是一种为广泛视觉应用设计的高效且有效的操作算子。DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1.移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2.优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DC......
  • YOLOv9添加DCNv4可变性卷积与RepNCSPELAN4结构融合(windows系统成功编译),全网最详细教
    前言引入了可变形卷积v4(DCNv4),这是一种为广泛视觉应用设计的高效且有效的操作算子。DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1.移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2.优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DCNv4相......
  • YOLOv10改进系列,YOLOv10添加DCNv4可变性卷积(windows系统成功编译),全网最详细教程
    原论文摘要引入了可变形卷积v4(DCNv4),这是一种为广泛视觉应用设计的高效且有效的操作算子。DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1.移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2.优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DC......
  • x86 docker 20.04 交叉编译 jetson xavier nx 20.04
    前文:https://www.cnblogs.com/odesey/p/183814071.jetson和x86交叉编译在https://developer.nvidia.com/embedded/jetson-linux-r3541,下载:BootlinToolchaingcc9.3解压得到,并创建文件夹:/home/用户名/docker_workspace/mycrosscompile/Bootlin-Toolchain-gcc-9.3在......
  • 【反编译】基础
    原创看雪学苑什么是控制流还原所谓控制流还原,通俗的讲就是将CFG还原成由if、while、for等组成的高级抽象结构。如下图有个控制流图,他的边本身是个jump,反编译器需要理解控制流的结构,把条件分支和循环识别出来。反编译器中的控制流还原控制流还原部分处于反编译步骤的最后......
  • openHarmony南向开发笔记(二)U-boot源码下载与编译
    U-boot源码下载与编译文章目录U-boot源码下载与编译openharmony启动流程BootRom阶段做了什么U-Boot简介UBoot源码下载创建如下的目录结构克隆uboot源码下载编译工具链下载rkbin下载gcc源码编译源码目录结构openharmony启动流程设备上电后,OpenHarmony系统从......
  • Nginx 的编译并打包成二.txt
    Nginx的编译并打包成二进制文件是一个涉及源代码编译和静态链接的过程。‌下面是一个简单的步骤说明,‌帮助你从源代码编译Nginx并生成一个可独立运行的二进制文件。‌安装依赖首先,‌确保你的系统上安装了编译Nginx所需的依赖项。‌对于大多数Linux发行版,‌你可能需要安......
  • 信道编码——线性分组码(Hamming、BCH、RS)Matlab编译码实现与性能分析
    目录第六篇博客感言编译码原理Hamming码BCH码RS码Matlab源码和运行结果源码结果Hamming码BCH码RS码 总结第六篇博客感言坚持写,及时写。编译码原理Hamming码参考汉明码——计算机网络——全网最通俗的讲解-CSDN博客。BCH码参考【举例子详细分析】BCH码(BC......
  • python3安装编译_tkinter模块丢失
    1.make的时候报缺少_tkinter模块,上一步./configure已经checking发现_tkintermissing  2.安装tk、tcl相关的包,包括python3-tk仍然没有解决问题。讲相关库移到/usr/lib也没解决问题。 3.查看./configure的命令行参数,在环境变量中有两个参数:TCLTK_CFLAGSC......
  • Object类型编译基本类型
    byte&short&intObjecta=1;//字节码0iconst_11invokestatic#2<java/lang/Integer.valueOf>4astore_15returnObjecta=127;//字节码0bipush1272invokestatic#2<java/lang/Integer.valueOf>5astore_16returnObjec......