2015-12-15 2 views
0

Возможно, я нарушаю все правила публикации о дублировании, но на самом деле я отчаянно ищу информацию два дня подряд, и я не нашел ничего полезного для этой простой, но страшной проблемы.библиотека не найдена. Попытка скомпилировать программу, включая Lapack (C++)

Я просто хочу compilate кода c.cpp с командой

g++ -c -std=c++11 -llapack -lblas program.cpp -o program.o 

Я искренне не знаю, если я должен написать в код #include LAPACK, #include «LaPack», #include lapack.a, #include liblapack.a ... Ситуация в том, что у меня есть файл liblapack.a, расположенный в usr/lib.

Где проблема? Я перепробовал все возможные комбинации ...

Это первый раз, когда я использовать библиотеки, которые не являются классическим stdio.h, CMATH и т.д.

Большое спасибо :)

Просто отредактирован: Я понял, что слова между «<» и соответствующее закрытие «больше» исчезают.

ответ

1

В программе program.cpp вам необходимо # включить соответствующие файлы заголовков. Единственный способ узнать, что это такое - знать, что использует код. Я думаю, когда вы пытаетесь скомпилировать, вы получаете сообщения об ошибках, сообщающие вам, какие имена не определены.

+0

Как узнать, что следует за #include? например, в моем случае у меня есть liblapack.a в usr/lib. Можем ли мы извлечь из этого то, что должно быть включено? Или где я должен смотреть, чтобы это знать? Большое спасибо! И да, когда #include XX, ошибка всегда «Не удалось найти XX. Компиляция завершена». – user3545895

+0

Чтобы знать, что включать, вам нужно прочитать документы для библиотеки. Никакой другой способ, кроме grepping и угадывания из файлов, установленных в вашей системе. Лучше прочитайте документы. –

+0

Документы ничего не говорят, просто о том, как использовать каждую функцию. Я нашел в примере, предоставленном Lapack, что он должен быть lapacke.h (с e), однако при попытке скомпилировать пример он не работает (ошибка: не удается найти lapacke.h, какой сюрприз). Это настолько загадочно ... Если у вас есть какие-то идеи, я бы поблагодарил вас, но если вы этого не сделаете, спасибо вам в любом случае, я продолжу поиск в Интернете и опробовать комбинации строк ... – user3545895