间接引用MSYS2的APR库中的符号

问题描述 投票:0回答:0

我最终会尝试构建和利用使用 MinGW 构建的 log4cxx 库。我已经用 MSYS2 和 MinGW 构建了它。但是,当我尝试使用(链接)它时,我得到了一堆 apr 函数的未定义引用链接器错误,例如:

ld.exe: ../msys64/mingw64/lib/liblog4cxx.a(loggingevent.o):loggingevent.c:(.text+0xbcf): 未定义引用`__imp_apr_snprintf'

ld.exe: ../msys64/mingw64/lib/liblog4cxx.a(loggingevent.o):loggingevent.c:(.text+0xe20): 未定义引用`__imp_apr_time_now'

这很奇怪,因为我正在链接到 libapr-1.dll.a,它是我从 MSYS2 包中获得的: https://packages.msys2.org/package/mingw-w64-x86_64-apr?repo=mingw64

然后我使用 nm 列出了 libapr-1.dll.a 中的符号,发现这些符号都有类型“I”,根据 nm 文档,这意味着 indirect reference to symbol。例如:

d000388.o:
0000000000000000 I __imp_apr_snprintf
U _head_libapr_1_0_dll
0000000000000000 T apr_snprintf

我的问题是,这个“间接”引用是什么意思,或者最终,链接器需要什么才能找到所有这些符号?谢谢。

mingw undefined-reference msys2 apr log4cxx
© www.soinside.com 2019 - 2024. All rights reserved.