Skip to content

[Question] How can I static link mkl or use mkl through vcpkg? #602

Open
@wuchun

Description

@wuchun

I see that in the CMakeLists.txt here, we only do static linking for python. I'm wondering whether we can do static linking for C++ as well. I tried to just rm L191-L192 so that the code tries static linking even when NOT PYBIND, but was getting many compile errors, for example:

/usr/bin/ld: ../../src/libdiskann.a(math_utils.cpp.o): in function `math_utils::compute_vecs_l2sq(float*, float*, unsigned long, unsigned long) [clone ._omp_fn.0]':
math_utils.cpp:(.text+0xca): undefined reference to `cblas_snrm2'

Are there other archive files that need to be specified or is the issue something else?

I also have another project that already installs mkl through vcpkg. I followed their usage doc and added L3-L4 from that to diskann's CMakeLists.txt. The whole project compiles fine but get runtime error for undefined symbol: mkl_trans_mkl_somatcopy or undefined symbol: mkl_lapack_slange.

Any help is really appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions