我下载了适用于 Linux 的 CULA Dense R17 免费版。
我注意到在 lib 和 lib64 目录中,没有 libcula_lapack.so,但只有 libcula_lapack_basic.so。这应该是正常的,因为在 culatools 站点中指定在此版本中 cula_lapack.dll/so 在 cula_lapack_basic.dll/so 中重命名!
我以这种方式在 .bashrc 文件中设置环境变量:
export CULA_LIB_PATH_32=/usr/local/cula/lib
export CULA_ROOT=/usr/local/cula
export CULA_LIB_PATH_64=/usr/local/cula/lib64
export CULA_INC_PATH=/usr/local/cula/include
export LD_LIBRARY_PATH = "$CULA_LIB_PATH_64"
我尝试编译一个非常简单的 c 程序来测试 cula 是否正确运行。
#include <cula.h>
#include <stdio.h>
int main()
{
culaStatus s;
s = culaInitialize();
if (s != culaNoError)
printf("%s\n", culaGetStatusString(s));
culaShutdown();
return 0;
}
我编译:
gcc -I$CULA_INC_PATH -L$CULA_LIB_PATH_64 -lcula_lapack_basic prog.c -o prog
我收到了这个错误:
/tmp/ccDSdmLN.o: In function `main':
prog.c:(.text+0xe): undefined reference to `culaInitialize'
prog.c:(.text+0x21): undefined reference to `culaGetStatusString'
prog.c:(.text+0x33): undefined reference to `culaShutdown'
collect2: ld returned 1 exit status
可能在编译的指令中链接或程序中的包含文件是错误的!
如何解决这个编译问题?:roll: :roll: :( 你能帮帮我吗?