Использование Armadillo с MKL - PullRequest
0 голосов
/ 17 июня 2020

У меня вопрос по использованию 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.

...