У меня вопрос по использованию Armadillo с MKL. Теперь у меня есть программа, написанная на C ++ с использованием библиотеки Armadillo. На моем компьютере установлен MKL (можно рассматривать как замену lapack и blas), и я считаю, что Armadillo обнаружил MKL, когда был установлен Armadillo. Теперь я обернул код c ++ в python через cython. Но когда я импортировал модуль, я получил следующую ошибку: «undefined symbol: dgesvx_». Я поискал Inte rnet и обнаружил, что dgesvx связан с библиотекой Lapack. Возможно, я что-то упустил по поводу ссылки, но не могу понять. Может кто-нибудь дать мне совет? Спасибо.
Вот мой файл setup.py для упаковки c ++.
setup(name='example',
version='0.1',
packages=['example'],
package_dir={'example': 'example'},
description='Wrapper to Armadillo',
#package_data={'cyarma': ['*.pyx','*.pxd']},
cmdclass = {'build_ext': build_ext},
ext_modules = [Extension("example",
["example/example.pyx", "example/Test.cpp"],
include_dirs = [get_include(), '/usr/include',
'/usr/local/include',
cyarma.include_dir,
"/Users/armadillo-9.900.1/include"],
library_dirs = ['/usr/lib', '/usr/local/lib/include"],
extra_compile_args = ['-lmkl']
language='c++',
),
]
)
Он отлично работал на моем другом компьютере с установленными Lapack и Blas.