2016-07-18 4 views
0

Я новичок в intel_mkl. Я загрузил его в качестве исследователя в течение 12 месяцев с сайта. Я использую визуальную студию 2012 C на Windows 10 64 бит. У меня есть ядро ​​i7.Ссылка на лак с использованием visual studio 2012 C

Я решил решить большую линейную систему уравнений, поэтому я использую dgesv_ для решения этой проблемы, и она работает. Но из-за вопроса о важности строки и столбца проблема была неправильной.

Я искал решение для этой проблемы, и я нашел LAPACKE_dgesv(LAPACK_ROW_MAJOR, n, nrhs, a, lda, ipiv, b, ldb); со следующими заголовочных файлов:

#include <mkl.h> 
#include <mkl_cblas.h> 
#include <mkl_blas.h> 
#include <mkl_lapack.h> 
#include <mkl_lapacke.h> 

, но это дает мне следующую ошибку

фатальным LNK1120 ошибки: 1 неразрешенных внешних

Когда я искал решение, я обнаружил, что они сообщают ссылку libmkl_intel_ilp64.akernel32.lib или libmkl_intel_lp64.akernel32.lib в соответствии с использованием lp64 или ilp64. Я не знаю, какой из них использует система. Таким образом, я пытался их обоих (как попробовать и ошибки), но он дает следующую ошибку

LINK: фатальный LNK1104 об ошибке: Не удается открыть файл 'libmkl_intel_ilp64.akernel32.lib'

NB: (если это важно) платформа решения win32

Update:

Я добавил в дополнительном каталоге библиотеки по следующему адресу «C: \ Program Files (x86) \ IntelSWTools \ compilers_and_libraries_2016.3.207 \ Windows \ MKL \ Lib \ intel64_win " Также я добавил в общий каталог C/C++ дополнительные каталоги «C: \ Program Files (x86) \ IntelSWTools \ compilers_and_libraries_2016.3.207 \ windows \ mkl \ include"

Теперь старые ошибки исчезли, но появилась новая ошибка

Source.obj: ошибка LNK2019: неразрешенный внешний символ _LAPACKE_dgesv ссылки в функции _main

Что мне делать с этой ошибкой

+2

Возможный дубликат [Что такое неопределенная ссылка/неразрешенный внешний символ ошибки и как это исправить?] (Http://stackoverflow.com/questions/12573816/what-is-an-undefined -reference-unresolved-external-symbol-error-and-how-do-i-fix) –

+0

См. вышеупомянутый комментарий. – kangshiyin

+0

Я уже читал это, но я не мог использовать его для решения своей проблемы. –

ответ

0

это должно быть libmkl_intel_ilp64.a kernel32.lib?

Возможно, вы захотите использовать это, чтобы помочь вам правильно настроить ссылки.

https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor

Есть много дискуссий о ILP64/LP64. Вы можете захотеть их в Google.

https://software.intel.com/en-us/node/528353

+0

Я уже пробовал, но проблема в том, что я не знаю ответа на вопросы, которые он задает, и я не знаю, как это знать: статическое и динамическое связывание, интерфейсный слой, слой потоковой передачи. можете ли вы помочь мне найти их или ответить на них? –

+0

@mahmoudayyad типичной настройкой является динамическая компоновка, LP64, потоковая обработка OpenMP. Все это ваш выбор, за исключением интерфейса. – kangshiyin

+0

, когда я использовал то, что сказал мне, это дает мне следующую ошибку: «LINK: фатальная ошибка LNK1104: невозможно открыть файл« mkl_intel_lp64_dll.lib mkl_core_dll.lib mkl_intel_thread_dll.lib »« –