makefile:
# COMPILING OPTIONS ###################
OPT1 = -Minfo -fast -fastsse
Не проходит компиляция с этими опциями
В интернете нашел информацию, что надо заинсталлировать вот эту версию Фортрана:
pgf90 - Portland Group Fortran 90 compiler
вопрос к линуксоидам
вопрос к линуксоидам
Последний раз редактировалось NT 28 ноя 2019, 06:44, всего редактировалось 1 раз.
Причина: test
Причина: test
вопрос к линуксоидам
а где ее взять?
или она ужо есть в убунте?
или она ужо есть в убунте?
Последний раз редактировалось laplas 28 ноя 2019, 06:44, всего редактировалось 1 раз.
Причина: test
Причина: test
вопрос к линуксоидам
нет ее стандартово на ubuntu.
надо как-то скачивать с интернета, завтра - уже засыпаю.
надо как-то скачивать с интернета, завтра - уже засыпаю.
Последний раз редактировалось NT 28 ноя 2019, 06:44, всего редактировалось 1 раз.
Причина: test
Причина: test
вопрос к линуксоидам
спасибо)
Последний раз редактировалось laplas 28 ноя 2019, 06:44, всего редактировалось 1 раз.
Причина: test
Причина: test
вопрос к линуксоидам
NT писал(а):Source of the post
makefile:
# COMPILING OPTIONS ###################
OPT1 = -Minfo -fast -fastsse
Не проходит компиляция с этими опциями
Эти опции можно и выкинуть. Всё равно оно только для оптимизации.
Последний раз редактировалось zykov 28 ноя 2019, 06:44, всего редактировалось 1 раз.
Причина: test
Причина: test
вопрос к линуксоидам
Выкинул, теперь вот со сборкой проблема:
# LINKING OPTIONS #####################
OPT2 = -lrfftw -lfftw -lm -L{FFTWINC}
usr/bin/ld: can not find -lrfftw
usr/bin/ld: can not find -lfftw
collect2: error: ld return 1 exit status
[attachmentid=17186]
Последний раз редактировалось NT 28 ноя 2019, 06:44, всего редактировалось 1 раз.
Причина: test
Причина: test
вопрос к линуксоидам
NT писал(а):Source of the post
Выкинул, теперь вот со сборкой проблема:
# LINKING OPTIONS #####################
OPT2 = -lrfftw -lfftw -lm -L{FFTWINC}
usr/bin/ld: can not find -lrfftw
usr/bin/ld: can not find -lfftw
collect2: error: ld return 1 exit status
А пути в makefile настроили на эту Фурье библиотку (она в том же архиве лежит)?
Код: Выбрать все
# FFTW LIBRARY LOCATION ###############
FFTWLIB = /usr/local/fftw-2/lib
FFTWINC = /usr/local/fftw-2/include
Подозреваю, что библиотеку нужно сначала проинсталировать.
Последний раз редактировалось zykov 28 ноя 2019, 06:44, всего редактировалось 1 раз.
Причина: test
Причина: test
- homosapiens
- Сообщений: 8400
- Зарегистрирован: 16 июн 2008, 10:02
вопрос к линуксоидам
Кароче, убунту - на фиг. Кому нужны языки вроде фортрана качают церновский Scientific Linux и пользуют f90.
Кому нужны научные библиотеки - качают его же. Все из коробки, все работает.
А линукс - хорошая вещь, но не для дома.
Кому нужны научные библиотеки - качают его же. Все из коробки, все работает.
А линукс - хорошая вещь, но не для дома.
Последний раз редактировалось homosapiens 28 ноя 2019, 06:44, всего редактировалось 1 раз.
Причина: test
Причина: test
вопрос к линуксоидам
На всякий случай для понимания, если хотите при линковке дабавить библиотеку то надо сделать две вещи - указать линковщику путь и имя в командной строке. Это разные опции - что то вроде -L и -l (смотрим man ld) Иногда надо подсказать тип библиотеки shared или static. Порядок важен - линкер проходит один раз.
Если же бибиотека не находится при запуске программы то надо добавить путь до нее в переменную энвайронмента
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:.:/usr/lib
точка значит в текущей
это как переменная PATH для программ, она наследуется у запускаемых процессов.
Для контроля за тем что происходит используем
strace -f -o /tmp/loglog make
grep open /tmp/loglog
и видим что на самом деле пытался и в каком порядке открывал линкер. Там же будут и параметры запуска линкера (системный вызов exec..) и переменные env с которыми он запускался. (для этого еще пару опций в strace можно добавить )
Не пугайтесь - вышесказанное позволит вам теперь разобраться с любой сборкой любых программ в Unix System V
Если же бибиотека не находится при запуске программы то надо добавить путь до нее в переменную энвайронмента
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:.:/usr/lib
точка значит в текущей
это как переменная PATH для программ, она наследуется у запускаемых процессов.
Для контроля за тем что происходит используем
strace -f -o /tmp/loglog make
grep open /tmp/loglog
и видим что на самом деле пытался и в каком порядке открывал линкер. Там же будут и параметры запуска линкера (системный вызов exec..) и переменные env с которыми он запускался. (для этого еще пару опций в strace можно добавить )
Не пугайтесь - вышесказанное позволит вам теперь разобраться с любой сборкой любых программ в Unix System V
Последний раз редактировалось folk 28 ноя 2019, 06:44, всего редактировалось 1 раз.
Причина: test
Причина: test
вопрос к линуксоидам
zykov писал(а):Source of the post
А пути в makefile настроили на эту Фурье библиотку (она в том же архиве лежит)?Код: Выбрать все
# FFTW LIBRARY LOCATION ###############
FFTWLIB = /usr/local/fftw-2/lib
FFTWINC = /usr/local/fftw-2/include
Да , yстановленны на каталог, где был распакован пакет, соответственно:
FFTWLIB = /home/nurik/Документы/SolvMolCR/fftw-2.1.5/lib
FFTWINC = /home/nurik/Документы/SolvMolCR/fftw-2.1.5/include
Что видно из скрина:
[attachmentid=17187]
usr/bin/ld: can not find -lrfftw
usr/bin/ld: can not find -lfftw
То, на что кричит gfortran (rfftw, fftw)- это каталоги, они находятся в "fftw-2.1.5"
Может всё дело в названии каталога на русском языке "Документы" - система КДЕ сама заложила его (интефейс русскояз. выбрал).
Вообще у меня вопрос такой, что значит опция для фортрана:
gfortran -l<name_of_catalog>
Последний раз редактировалось NT 28 ноя 2019, 06:44, всего редактировалось 1 раз.
Причина: test
Причина: test
Вернуться в «Computer Science»
Кто сейчас на форуме
Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 4 гостей