尝试从设置为libOpenCL.so
的{{1}}中动态加载程序中的LD_LIBRARY_PATH
。我再次检查了./
是否以正确的拼写出现在当前目录中,并且我正在当前目录中运行以下程序。
libOpenCL.so
这将输出:#include <stdio.h>
#include <dlfcn.h>
int main(void)
{
const char* dl_path = "libOpenCL.so";
if (dlopen(dl_path, RTLD_NOW) == NULL)
printf("Cannot open shared lib: %s\n", dlerror());
else
printf("Open successful\n");
return 0;
}
当我使用相对路径字符串即Cannot open shared lib: libOpenCL.so: cannot open shared object file: No such file or directory
调用dlopen()
时,它打开得很好。
根据我对"./libOpenCL.so"
文档的理解,在dlopen()
搜索中应考虑非空的LD_LIBRARY_PATH
,但有一些例外情况不适用于我的示例。我在这里可能还有其他问题吗?
这是针对Arch Linux,glibc 2.29,GCC 9.1
运行它:
.so