Ошибка при использовании Armadillo

Я загрузил последний пакет Armadillo (3.920) и пытаюсь использовать его на своей машине (Ubuntu 12.04). Я выполняю шаги, указанные в файле readme.txt для установки (cmake ., make, sudo make install). У меня в системе есть lapack и blas. Когда я пытаюсь запустить пример, представленный в каталоге примеров, используя: g++ example1.cpp -O2 -larmadillo, я получаю сообщение об ошибке: /usr/lib/liblapack.so.3gf: неопределенная ссылка на ATL_zptgemm' /usr/lib/liblapack.so.3gf: undefined reference toATL_scopy' и т. д.

Если я попытаюсь запустить пример с g++ example1.cpp -O2 -llpack -lblas -lgfortran, я получаю сообщение об ошибке: ccOsKhfg.o: В функции void arma::blas::gemm<double>(char const*, char const*, int const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*)': example1.cpp:(.text._ZN4arma4blas4gemmIdEEvPKcS3_PKiS5_S5_PKT_S8_S5_S8_S5_S8_PS6_S5_[void arma::blas::gemm<double>(char const*, char const*, int const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*)]+0x61): undefined reference towrapper_dgemm_'

Обратите внимание, что если я прокомментирую строки '#define ARMA_USE_LAPACK', '#define ARMA_USE_BLAS' в config.hpp, я смогу запустить пример 1, но не пример 2, так как он требует lapack.

Не могли бы вы подсказать мне в решении проблемы. Спасибо. Салил


person user3106127    schedule 16.12.2013    source источник
comment
Вам нужно очистить форматирование перед отправкой вопроса. Просмотрите: stackoverflow.com/editing-help   -  person James A Mohler    schedule 16.12.2013


Ответы (1)


Увидев ваш вопрос, я думаю, вам следует ввести -llapack вместо -llpack.
Без -lgfortan это может работать, так что попробуйте и это.

g++ main.cpp -o main -o1 -larmadillo -llapack -lblas

person abby37    schedule 06.02.2017