gpt4 book ai didi

c++ - 在 C++ 中使用 dlopen 的 undefined reference 错误

转载 作者:行者123 更新时间:2023-11-30 05:39:48 37 4
gpt4 key购买 nike

我正在尝试为来自 debian 的 arm 系统交叉编译 apache-qpid

undefined reference to __dlopen错误,不过好像跟之前的警告有关:

在静态链接的应用程序中使用“dlopen”需要在运行时使用来自用于链接的 glibc 版本的共享库......

详情如下:

[ 86%] Linking CXX shared library libqpidcommon.so
CMakeFiles/qpidcommon.dir/qpid/sys/posix/Shlib.cpp.o: In function
`qpid::sys::Shlib::load(char const*)':
/home/mert/qpid-cpp-0.34/src/qpid/sys/posix/Shlib.cpp:32: warning: Using
'dlopen' in statically linked applications requires at runtime the shared
libraries from the glibc version used for linking
/home/mert/IDE/cVEND/00.00.14/bin/../arm-feig-linux-
gnueabi/sysroot/usr/lib/libdl.a(dlopen.o): In function `dlopen':
dlopen.c:(.text+0xc): undefined reference to `__dlopen'

我不知道到底发生了什么以及如何解决。

Here有一件类似的事情,我尝试添加 -static -ldl -lc C_FLAGS 但没有任何区别。

感谢任何帮助。

编辑:

编辑:

我不确定究竟是什么解决了这个问题,但我认为 -ldl 正在寻找 libdl.so,但在 arm 目录中,它是 libdl-2.19.so ,因此,它可能正在另一个目录中寻找和查找。我已将 libdl.so 链接到 libdl-2.19.so,现在它正在编译。

最佳答案

链接器需要这些选项,而不是编译器。参见 LDFLAGS。

https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html

Extra flags to give to compilers when they are supposed to invoke the linker, ‘ld’, such as -L. Libraries (-lfoo) should be added to the LDLIBS variable instead.

关于c++ - 在 C++ 中使用 dlopen 的 undefined reference 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32115842/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com