用gfortran编译plplplot

用gfortran编译plplplot,plot,fortran,gfortran,Plot,Fortran,Gfortran,Gfortran编译在plplot图形库中失败 仅供参考:Plplot是一个图形库,使用它可以直接从gfortran(以及其他语言)进行绘图 我已安装以下软件包(在Xubuntu 18.04上) 我用以下命令更新了本地数据库:sudo updatedb。当我运行命令locate plplplot时,我得到以下相关行(以及其他行) 然后我尝试编译给出的fortran示例代码(下面给出了相关部分) 使用以下命令 gfortran x00f.f90 $(pkg-config --cflags --li

Gfortran编译在plplot图形库中失败

仅供参考:Plplot是一个图形库,使用它可以直接从gfortran(以及其他语言)进行绘图

我已安装以下软件包(在Xubuntu 18.04上)

我用以下命令更新了本地数据库:
sudo updatedb
。当我运行命令
locate plplplot
时,我得到以下相关行(以及其他行)

然后我尝试编译给出的fortran示例代码(下面给出了相关部分)

使用以下命令

gfortran x00f.f90 $(pkg-config --cflags --libs plplot-fortran)
pkg config--cflags--libs plplplot 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

我是否需要安装任何其他软件包,或者编译命令不完整?任何帮助都将不胜感激。

为未来的SO用户回答我自己的问题。 上面代码的正确编译命令是

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

也可以查看VladimirF对此的评论。

为未来的SO用户回答我自己的问题。 上面代码的正确编译命令是

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

还可以查看VladimirF对该问题的评论。

@VladimirF:在上述问题中添加了代码和$(pkg config--cflags--libs plplplot fortran)的输出。由于该代码不是我的代码,而是一个标准示例,因此我添加了一个指向它的链接。您的系统上是否存在plfortrandemolib.mod?如果是,则需要在命令行上指定模块的路径。如果没有,则需要将模块安装到gfortran可以找到的位置。@evets:它存在于以下路径中:
/usr/lib/x86\u 64-linux-gnu/fortran/modules/plplplplot/plfortrandemolib.mod
@evets:尝试使用以下命令:
gfortran x00f.f90-L/usr/lib/$(pkg config--cflags--libs plplot fortran)
。还是不走运。我收到了同样的错误信息。@evets:终于找到了答案。要编译的命令应该是
gfortran x00f.f90-lplfortrandemolib$(pkg config--cflags--libs plplplot fortran)
。每次使用新模块时,即使使用
pkg config
命令,是否也必须单独指定每个模块?@VladimirF:在上述问题中添加了代码和$(pkg config--cflags--libs plplplot fortran)的输出。由于该代码不是我的代码,而是一个标准示例,因此我添加了一个指向它的链接。您的系统上是否存在plfortrandemolib.mod?如果是,则需要在命令行上指定模块的路径。如果没有,则需要将模块安装到gfortran可以找到的位置。@evets:它存在于以下路径中:
/usr/lib/x86\u 64-linux-gnu/fortran/modules/plplplplot/plfortrandemolib.mod
@evets:尝试使用以下命令:
gfortran x00f.f90-L/usr/lib/$(pkg config--cflags--libs plplot fortran)
。还是不走运。我收到了同样的错误信息。@evets:终于找到了答案。要编译的命令应该是
gfortran x00f.f90-lplfortrandemolib$(pkg config--cflags--libs plplplot fortran)
。每次使用新模块时,即使使用
pkg config
命令,是否也必须单独指定每个模块?
/tmp/ccAQ0C7A.o: In function `MAIN__':
x00f.f90:(.text+0x65): undefined reference to `__plfortrandemolib_MOD_arange_1'
collect2: error: ld returned 1 exit status
gfortran x00f.f90 -lplfortrandemolib $(pkg-config --cflags --libs plplot-fortran)