0

我下载了适用于 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: :( 你能帮帮我吗?

4

0 回答 0