无法链接到现有的 libopenblas.so.0 DLL
Cannot link to existing libopenblas.so.0 DLL
我需要在C++中使用libpca,这取决于犰狳,而犰狳又需要OpenBlas和lapack。
我在安装/配置这些依赖项时遇到了一些问题。
我正在使用红帽 4.8.5-16,并希望编写代码并用/my/dir/program/
调用包。我没有 sudo 特权。
所有这些软件包都以/my/dir/
下载和解压缩
以下是我遵循的步骤:
1. to install OpenBlas
/my/dir/OpenBLAS-0.2.20$ make
/my/dir/OpenBLAS-0.2.20$ make PREFIX=/my/dir/program/
<Step 1 is successful>
2. to install lapack
/my/dir/lapack-3.8.0$ mv make.inc.example make.inc
/my/dir/lapack-3.8.0$ make
<Step 2 is successful>
3. to install Armadillo
/my/dir/armadillo-8.500.0$ cmake . -DCMAKE_INSTALL_PREFIX:PATH=/my/dir/pgrogram/
/my/dir/armadillo-8.500.0$ make
/my/dir/armadillo-8.500.0$ make install
<Step 3 is successful>
4. to compile the example code
/my/dir/armadillo-8.500.0$ cp examples/example1.cpp /my/dir/program
/my/dir/program$ export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64/:../OpenBLAS-0.2.20/:../armadillo-8.500.0/:./lib/:./lib64/:$LD_LIBRARY_PATH ;
/my/dir/program$ g++ example1.cpp -o example1 -O2 -I./include -L./lib -L./lib64 -L../lapack-3.8.0 -L../OpenBLAS-0.2.20 -larmadillo -lopenblas -llapack ;
<There is no warning or error in compiling>
5. to run the example code
/my/dir/program$ export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64/:../OpenBLAS-0.2.20/:../armadillo-8.500.0/:./lib/:./lib64/:$LD_LIBRARY_PATH ;
/my/dir/program$ ./example1
它返回
./example1:加载共享库时出错:libopenblas.so.0:不能 打开共享对象文件:没有此类文件或目录
实际上libopenblas.so.0
dll位于./lib/
,我已经添加了DLL路径。
由于我没有root权限,因此无法按照本文的建议yum install openblas.x86_64 openblas-devel.x86_64
。
我该怎么办?
对于 g++/ld 来说,找到libmkl_rt.so
是一回事。
运行./example1
是一种新情况:"位置信息"必须重复→
export LD_LIBRARY_PATH=/opt/intel.. .. ...:$LD_LIBRARY_PATH && ./example1
请注意,导出命令是临时的:仅对当前 shell 会话有效。退出外壳时,该命令将被取消。
相关文章:
- 如何使用ndk-build.cmd构建Android.so文件
- 在C++代码中包含opencv时,使用ctypes创建.so文件
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- CLANG格式在缺少libtinfo.so.5库中不起作用
- C++ 运行时链接器错误 (liblog4cpp.so.5) Eclipse
- 使 ld 忽略来自 /etc/ld.so.conf 的目录
- N-API include an .so or dll
- 加载共享库时C++错误:libopencv_ximgproc.so.4.4
- 如何从构建 libgpio.so 的生成文件构建libgpio.a
- 用于构建 cuda .so 文件(共享库)的生成文件
- 无法从 SO 文件调用 SO 文件的函数 - C++生成文件
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 在jupyter notebook和google colab中使用.so
- 如何在 C++ 的 .so 文件中包含库
- JNI,使用两个 .so 文件时出错,其中一个文件需要另一个文件
- OpenVINO - 推理库插件 libMKLDNNPlugin.so 无法解析依赖关系
- 如何使用QtCreator将应用程序与"libqsqlpsql.so"链接?
- 添加符号 libgtest.so 错误:命令行中缺少 DSO
- 为什么C++可执行文件在与较新的libstdc++.so链接时运行得更快?
- 无法链接到现有的 libopenblas.so.0 DLL