使用 CMake 构建 Apache log4cxx

Building Apache log4cxx with CMake

提问人:Orlay Garcia Duconge 提问时间:8/9/2022 最后编辑:Orlay Garcia Duconge 更新时间:8/11/2022 访问量:316

问:

我正在尝试在 Windows 平台上为 mingw 构建 Apache log4cxx 0.13.0

  1. 我使用 MSYS2 构建并安装了 apr 和 apr-util
  2. 我从apache存储库下载了log4cxx源代码

但是当使用 CMake 进行配置时,它会显示以下错误:

CMake Error at src/cmake/FindAPR.cmake:17 (message):
apr-1-config --includedir failed with result %1 is not a valid Win32
application
Call Stack (most recent call first):
src/cmake/FindAPR.cmake:35 (_apr_invoke)
CMakeLists.txt:44 (find_package)

CMakeOutput.log

enter image description here

cmake mingw msys2 四月 log4cxx

评论

0赞 Brecht Sanders 8/10/2022
您是否安装了 apr 并在您的 ?apr-1-configPATH
0赞 Orlay Garcia Duconge 8/11/2022
是的,我有。此外,我尝试应用 mingw 补丁构建我的 self apr 和 apr-util,当我构建 log4cxx 时,我遇到了同样的错误。github.com/msys2/MINGW-packages/tree/master/mingw-w64-apr
0赞 Brecht Sanders 8/11/2022
自 log4cxx 版本 0.12.0 以来,我实际上和你有同样的问题。我能够构建版本 0.11.0,请参阅我的食谱:github.com/brechtsanders/winlibs_recipes/blob/main/recipes/...
0赞 Brecht Sanders 8/11/2022
从头开始,我得到了 0.13.0 版本,可以在 Windows 上构建,并进行了一些调整。

答:

1赞 Brecht Sanders 8/11/2022 #1

apu-1-configapr-util 软件包实际上是一个 *nix shell 脚本。

CMake 正在尝试直接运行,但 Windows 当然不知道如何执行它。apr-1-config

该解决方案以(及其参数)作为参数执行。sh.exeapr-1-config

以下补丁为我解决了这个问题:

patch -ulbf src/cmake/FindAPR.cmake << EOF
@@ -10,3 +10,3 @@
     execute_process(
-        COMMAND \${APR_CONFIG_EXECUTABLE} \${ARGN}
+        COMMAND sh \${APR_CONFIG_EXECUTABLE} \${ARGN}
         OUTPUT_VARIABLE _apr_output
EOF
patch -ulbf src/cmake/FindAPR-Util.cmake << EOF
@@ -11,3 +11,3 @@
     execute_process(
-        COMMAND \${APR_UTIL_CONFIG_EXECUTABLE} \${ARGN}
+        COMMAND sh \${APR_UTIL_CONFIG_EXECUTABLE} \${ARGN}
         OUTPUT_VARIABLE _apr_output
EOF

我已经更新了我的 winlibs 构建脚本(主要是 MSYS2 shell 命令),因此它现在构建了最新的 Apache Log4cxx 0.13.0。除了这个问题之外,我还必须添加一些解决方法......

评论

0赞 Orlay Garcia Duconge 8/11/2022
这是我问题的正确答案。我将所有文件修补为 .wimlib,并且能够使用 CMake 配置和生成源代码。但是make命令找不到apr include路径 drive.google.com/file/d/1uGNsUOxnIGuav6bmr5_KPku6XnnYVwWO/...
1赞 Brecht Sanders 8/11/2022
我实际上在 github.com/brechtsanders/winlibs_recipes/blob/main/recipes/ 年进行了修改......因为否则就会出现搬迁问题。apr-1-config