Составление плплота с гфортран - PullRequest
0 голосов
/ 28 декабря 2018

Сбой компиляции Gfortran с графической библиотекой plplot.

К вашему сведению: Plplot - это графическая библиотека, с помощью которой можно строить графики непосредственно из gfortran (среди других языков).

Я установил следующие пакеты(в Xubuntu 18.04)

sudo apt install gfortran libplplot15 libplplot-dev libplplotfortran0 plplot-driver-cairo plplot-driver-qt plplot-driver-wxwidgets plplot-driver-xwin plplot-doc

Я обновил локальную базу данных следующей командой: sudo updatedb.Когда я выполнил команду locate plplot, я получил следующие соответствующие строки (вместе с другими строками)

/usr/lib/x86_64-linux-gnu/pkgconfig/plplot-fortran.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/plplot.pc

Затем я попытался скомпилировать пример кода на языке фортран, приведенный здесь (соответствующая частьниже)

program x00f
use plfortrandemolib

integer, parameter :: NSIZE = 101

real(kind=pl_test_flt), dimension(NSIZE) :: x, y

real(kind=pl_test_flt) :: xmin = 0._pl_test_flt, xmax = 1._pl_test_flt, ymin = 0._pl_test_flt, ymax = 100._pl_test_flt
! integer          :: i
integer :: plparseopts_rc

! Prepare data to be plotted.
x = arange(NSIZE) / real(NSIZE-1,pl_test_flt)
y = ymax * x**2

! Or alternatively, using a DO-loop
!do i = 1,NSIZE
!    x(i) = real( i - 1, pl_test_flt ) / real( NSIZE - 1, pl_test_flt )
!    y(i) = ymax * x(i)**2
!enddo

! Parse and process command line arguments
plparseopts_rc = plparseopts( PL_PARSE_FULL )
if(plparseopts_rc .ne. 0) stop "plparseopts error"

! Initialize plplot
call plinit

! Create a labelled box to hold the plot.
call plenv( xmin, xmax, ymin, ymax, 0, 0 )
call pllab( "x", "y=100 x#u2#d", "Simple PLplot demo of a 2D line plot" )

! Plot the data that was prepared above.
call plline( x, y )

! Close PLplot library
call plend

end program x00f

с помощью следующей команды

gfortran x00f.f90 $(pkg-config --cflags --libs plplot-fortran)

Вывод pkg-config --cflags --libs plplot-fortran равен

-I/usr/include/plplot -I/usr/lib/x86_64-linux-gnu/fortran/modules/plplot -I/usr/include/plplot -lplplotfortran

Я получаю следующую ошибку:

/tmp/ccAQ0C7A.o: In function `MAIN__':
x00f.f90:(.text+0x65): undefined reference to `__plfortrandemolib_MOD_arange_1'
collect2: error: ld returned 1 exit status

Нужно ли устанавливать какие-либо другие пакеты или команда компиляции не завершена?Любая помощь будет оценена.

1 Ответ

0 голосов
/ 29 декабря 2018

Отвечая на мой вопрос для будущих пользователей SO.Правильная команда компиляции для приведенного выше кода:

gfortran x00f.f90 -lplfortrandemolib $(pkg-config --cflags --libs plplot-fortran) 

Также проверьте комментарий VladimirF к тому же.

...