在编译过程中,Visual Studio出现SuiteSparse 5.4.0无法解决的外部符号错误

时间:2019-06-13 18:56:11

标签: c++ visual-studio linker-errors vcpkg suitesparse

我通过vcpkg SuiteSparse 5.4.0-1安装了x64位Windows。尝试使用Visual Studio编译SuiteSparseQR程序(对于64位,发布模式)时,我遇到了链接器错误

Error LNK2001   unresolved external symbol "struct cholmod_dense_struct * __cdecl SuiteSparseQR<float>(struct cholmod_sparse_struct *,struct cholmod_dense_struct *,struct cholmod_common_struct *)" (??$SuiteSparseQR@M@@YAPEAUcholmod_dense_struct@@PEAUcholmod_sparse_struct@@PEAU0@PEAUcholmod_common_struct@@@Z)

我不知道如何解决这个问题。

由于自动完成功能可以正常运行,因此包含文件似乎运行良好,并且我还包含了所有.lib文件。我不确定还有什么尝试。

代表代码:

#include <suitesparse/SuiteSparseQR.hpp>

...
    cholmod_common c;
    cholmod_start(&c);

    cholmod_triplet* A_construct = cholmod_allocate_triplet(num_rows, rows * cols, num_vals, 0, CHOLMOD_REAL, &c);
    A_construct->i = &i[0];
    A_construct->j = &j[0];
    A_construct->x = &v[0];
    cholmod_sparse* A_s = cholmod_triplet_to_sparse(A_construct, 5, &c);
    cholmod_free_triplet(&A_construct, &c);

    cholmod_dense* X, * B;
    B = cholmod_allocate_dense(num_rows, 1, num_rows, CHOLMOD_REAL, &c);
    B->x = &asv[0];

    X = SuiteSparseQR<float>(A_s, B, &c);
    float* result = (float*)X->x;

... [Do things with result]

    cholmod_free_sparse(&A_s, &c);
    cholmod_free_dense(&X, &c);
    cholmod_free_dense(&B, &c);
    cholmod_finish(&c);

0 个答案:

没有答案