gpt4 book ai didi

C++ libdl.so : Can't open shared library in 32bit application

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:17 38 4
gpt4 key购买 nike

我正在编写一个小项目,我想在其中调用共享库中的函数。为此,我想使用 libdl.sodlopen() 函数。

我已设置好所有内容,因此当我将其作为 64 位应用程序构建和运行时它可以正常工作。但是,一旦我将其编译为 32 位应用程序然后尝试运行它,它将无法加载任何库。

dlopen() 仅返回 null 并调用 dlerror() 显示

libtbbmalloc.so.2: cannot open shared object file: No such file or directory

现在我猜我必须以某种方式安装该库的 32 位版本,但我无法在包管理器中找到它,而且我在网上找到的也不是很有帮助。

有人知道问题所在和/或我怎么能想象出来吗?


我正在通过 cmake v3.10 构建我的项目,在 CMakeLists.txt 中,我使用 32 位的说明:

set_target_properties(clib PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")
target_link_libraries(clib /usr/lib32/libdl.so)

我已经安装了 g++-multilib 包,我的 g++ 版本是 7.3.0

我正在尝试在 Linux Mint 18.3(6 位)上构建我的程序。

最佳答案

在评论中@Lorinczy Zsigmond 的帮助下,我找到了问题所在:我必须安装软件包 libtbb-dev:i836libz-dev:i836 以便函数加载正常工作。

关于C++ libdl.so : Can't open shared library in 32bit application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54255608/

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