Glibc错误:dlopen()的无效模式:无效的参数

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

我正在尝试在运行时使用dlopen加载动态库。我这样称呼它:

dlopen("/absolute/path/to/libFoo.so", 0);

这会产生以下错误:

invalid mode for dlopen(): Invalid argument

此代码在macOS上运行完美,但在Ubuntu 18.04.4 LTS上失败。该错误的含义是什么,我该如何解决?

glibc dynamic-linking dlopen
1个回答
1
投票

此代码在macOS上完美运行

这并不意味着它没有错误。

此错误的含义是什么,如何解决?

来自man page:以下两个值之一[必须包括在标志中:RTLD_LAZYRTLD_NOW

您没有包含任何一个标志,而这是您的程序中的一个错误,GLIBC正在告诉您。

要解决此问题,请将0替换为RTLD_LAZYRTLD_NOW,以适合您的程序为准。

© www.soinside.com 2019 - 2024. All rights reserved.