LINUX.ORG.RU

Прикрутить Фортран к GLUT


0

0

glut 3.7.1

f90gl-1.2.14

f90gl собирается без ошибок, но при попытке собрать тесты выдает

$ cd examples
$ make -f mfxlum 
gfortran -O -o blender -I../include/GL blender.f90 \
        -L../lib -L/usr/lib64 -L/home/mclaudt/glut-3.7.1/lib/glut -lf90glut -lf90GLU -lf90GL -lglut -lGLU -lGL -L/usr/lib64 -lXaw -lXt -lXmu -lXi -lXext -lX11 -lm
/home/mclaudt/glut-3.7.1/lib/glut/libglut.a(glut_vidresize.o): In function `glutVideoPan':
/home/mclaudt/glut-3.7.1/lib/glut/glut_vidresize.c:221: undefined reference to `glXChannelRectSyncSGIX'
/home/mclaudt/glut-3.7.1/lib/glut/glut_vidresize.c:224: undefined reference to `glXChannelRectSGIX'
/home/mclaudt/glut-3.7.1/lib/glut/libglut.a(glut_vidresize.o): In function `glutVideoResize':
/home/mclaudt/glut-3.7.1/lib/glut/glut_vidresize.c:199: undefined reference to `glXChannelRectSyncSGIX'
/home/mclaudt/glut-3.7.1/lib/glut/glut_vidresize.c:202: undefined reference to `glXChannelRectSGIX'
/home/mclaudt/glut-3.7.1/lib/glut/libglut.a(glut_vidresize.o): In function `glutVideoResizeGet':
/home/mclaudt/glut-3.7.1/lib/glut/glut_vidresize.c:97: undefined reference to `glXQueryChannelDeltasSGIX'
/home/mclaudt/glut-3.7.1/lib/glut/glut_vidresize.c:141: undefined reference to `glXQueryChannelRectSGIX'
/home/mclaudt/glut-3.7.1/lib/glut/libglut.a(glut_vidresize.o): In function `glutStopVideoResizing':
/home/mclaudt/glut-3.7.1/lib/glut/glut_vidresize.c:181: undefined reference to `glXBindChannelToWindowSGIX'
/home/mclaudt/glut-3.7.1/lib/glut/libglut.a(glut_vidresize.o): In function `glutSetupVideoResizing':
/home/mclaudt/glut-3.7.1/lib/glut/glut_vidresize.c:167: undefined reference to `glXBindChannelToWindowSGIX'
collect2: ld returned 1 exit status
make: *** [blender] Error 1

Кто-то лечил подобное? В интернетах про эту багу мутно, вроде это отголоски старого костыля под SGI. Cорцы GLUT-а есть.

Может кто-то прикрутил Фортран к GLUT-y иначе? Например, через f95gl.

Буду рад услышать любой опыт.

ps «Не нужно» не нужны.

Если в либах эти символы есть, то всё дело в порядке ключей -l...

Reset ★★★★★
()

А вообще откуда пришла такая идиотическая идея прикручивать к фортрану opengl? Если надо визуализировать результаты расчета, то самый правильный путь это делать отдельную считальную прогу, которая плюет в stdout, и визуализатор на opengl на c++.

Reset ★★★★★
()
Ответ на: комментарий от Reset

>>Если надо визуализировать результаты расчета, то самый правильный путь это делать отдельную считальную прогу, которая плюет в stdout, и визуализатор на opengl на c++.

Да не спорю. Но мне нужно не результаты, а сам процесс, чтобы визуализировала все векторы и массивы в реальном времени, чтоб наглядно видеть все узкие места.

Про ключи - попробую, спасибо.

Переберем все перестановки - всего-то 25 401 600 вариантов >_<

gkrellm
() автор топика
Ответ на: комментарий от Reset

>>А вообще откуда пришла такая идиотическая идея прикручивать к фортрану opengl?

Автор идиотической идеи: Dr. William F. Mitchell c чуть более чем дохерьмя публикациями.

gkrellm
() автор топика
Ответ на: комментарий от gkrellm

Лучше вызывать нужные фортрановские функции из C/C++, а потом отображать результаты с помощью GLUT, Qwt, чего угодно.

mannaz
()
Ответ на: комментарий от mannaz

>>Лучше вызывать нужные фортрановские функции из C/C++, а потом отображать результаты с помощью GLUT, Qwt, чего угодно.

Согласен, но для начальной отладки уже написанной программы легче в ней расставить команды отрисовки, чем полностью втыкать в код весом с десяток человеколет и вызывать нужные субрутины.

gkrellm
() автор топика
Ответ на: комментарий от gkrellm

Тогда ядро по отрисовке можно написать на Си, и дергать сишные функции по отрисовке из фортана. То есть в фортране у тебя будет вызывать одна функция, что-то типа send_data_to_glut, которая реализована на Си.

Reset ★★★★★
()

Короче с автором связи нет.

Тупо удалил из glut_videoresize.c все проблемные функции.

Пересобрал и все заработало! Yeahhh! ;)

gkrellm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.