Я пытаюсь скомпилировать очень простой код C ++ в недавно установленных Microsoft Visual Studio 2019 и Intel Parallel Studio XE (поставляется с библиотекой MKL 2020). В основном код создает дескриптор разреженной матрицы идентичности 3x3 в формате CSR, а затем уничтожает дескриптор:
#include "mkl.h"
#include "mkl_spblas.h"
int main(void)
{
const MKL_INT n = 3;
MKL_INT ia[3] = {0, 1, 2},ja[3] = {0, 1, 2};
double a[3] = {1., 1., 1. };
sparse_matrix_t csrA;
mkl_sparse_d_create_csr(&csrA, SPARSE_INDEX_BASE_ZERO, n, n, ia, ia + 1, ja, a);
mkl_sparse_destroy(csrA);
return;
}
Я сделал то, что эта ссылка (а также эта ссылка ) описывает настройку проекта (за исключением шага 6, так как я не могу найти «Custom Build Setup» в Visual Studio, поэтому я настраиваю intead в «Custom Build Step»).
Я использовал советник Intel Math Kernel Library Link Line Advisor для настройки каталогов включения и каталогов библиотек (я выбрал компилятор MS C \ C ++, архитектуру Intel (R) 64, динамическое связывание c, 32-разрядное целое число интерфейс и уровень последовательной потоковой передачи).
Благодаря @john мне удалось добиться небольшого прогресса. Но я все еще получаю эту ошибку:
Error MSB3073 The command "mkl_link_tool.exe -libs -c ms_c -a intel64 -i ilp64 -p no 2> NUL" exited with code 9009. ConsoleApplication1 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Platforms\x64\PlatformToolsets\v142\ImportBefore\Intel.Libs.MKL.v142.targets 64
Раньше я успешно запускал некоторые коды, вызывающие библиотеки MKL в системе linux, но я все еще довольно новичок в MSVS (а также в MKL ) так что я действительно приветствую любую помощь. Я читал несколько похожих topi c на inte rnet (например, this post ), но все еще не могу выполнить работу.