爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8205|回复: 13

请教 configure.wrf中的link line

[复制链接]

新浪微博达人勋

发表于 2015-9-19 23:05:21 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
编译wrf的时候,configure之后,我修改了WRFV3/external/io_grib2/g2lib下面的makefile。按照这个文件的说明,为了使用grib2,我把

CPPFLAGS= -DUSE_JPEG2000给注释掉了

CPPFLAGS= -DUSE_PNG -DUSE_JPEG2000的注释符号去掉了
结果后面还有一句:
Further, you will need to add "-lpng" to your link line in configure.wrf
请问这里的“link line in configure.wrf”,具体指的是configure.wrf中的哪一行?

原来我没有理会这句话,结果就是编译失败了。而如果我不对这里的makefile进行修改的话,wrf还是能顺利编译的,但是在g2lib下面就没有enc_png.o、dec_png.o两个文件,于是在后面的WPS编译的时候,选择grib2选项就生成不了ungrib.exe。

请大牛指导,我已经折腾1个月了……
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-20 09:41:01 | 显示全部楼层
安装jasper,libpng和zlib。然后指定环境变量的路径
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-20 20:06:57 | 显示全部楼层
andrewsoong 发表于 2015-9-20 09:41
安装jasper,libpng和zlib。然后指定环境变量的路径

环境变量我都设置了,但是makefile中提示的是,在compile.wrf中添加-lpng
后来我琢磨是不是compile.wrf中的lib_external那一行。
不过结果不是很理想。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-20 20:39:50 | 显示全部楼层
gebreeze 发表于 2015-9-20 20:06
环境变量我都设置了,但是makefile中提示的是,在compile.wrf中添加-lpng
后来我琢磨是不是compile.wrf ...

compile.wrf中添加-lpng的路径是对的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-20 20:39:50 | 显示全部楼层
gebreeze 发表于 2015-9-20 20:06
环境变量我都设置了,但是makefile中提示的是,在compile.wrf中添加-lpng
后来我琢磨是不是compile.wrf ...

compile.wrf中添加-lpng的路径是对的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-20 21:30:39 | 显示全部楼层
andrewsoong 发表于 2015-9-20 20:39
compile.wrf中添加-lpng的路径是对的

我就是在lib_external的那一行的-L/usr/local/wrf/jasper/lib -ljasper的后面添加了-L/usr/local/wrf/libpng/lib -lpng
可是效果不明显,也就是说,external——io_grib2——g2lib文件夹下面依然是只有dec_jpeg2000.o和enc_jpeg2000.o,而没有dec_png.o和enc_png.0两个目标文件。没有这两个o文件,后面WPS编译grib2的时候,log文件依然提示,由于没有这两个o文件,编译失败。

后来,我把g2lib文件夹的makefile也改了,把OBJS下面添加了pngpack.o、pngunpack.o、dec_png.o以及enc_png.o四个目标文件,结果WRF根本不编译了………………

请指导,多谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-20 22:14:09 | 显示全部楼层
gebreeze 发表于 2015-9-20 21:30
我就是在lib_external的那一行的-L/usr/local/wrf/jasper/lib -ljasper的后面添加了-L/usr/local/wrf/lib ...

COMPRESSION_LIBS    = -L/opt/jasper/lib -ljasper \
                      -L/opt/png/lib -lpng12 -lpng \
                      -L/opt/zlib/lib -lz
COMPRESSION_INC     = -I/opt/jasper/include \
                      -I/opt/png/include \
                      -I/opt/zlib/include

WPS才需要!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-20 22:41:36 | 显示全部楼层
andrewsoong 发表于 2015-9-20 20:39
compile.wrf中添加-lpng的路径是对的

经过我自己的琢磨,后来终于找到了真正的原因:
1、g2lib文件夹下面的makefile代码中,默认只编译jpeg2000,不编译png,所以要修改相应的代码,同时在configure.wrf中的LIB_EXTERNAL一行添加-lpng。
2、g2lib的上一级目录io_grib2下面的makefile中,指指定了需要编译f源文件的目录,而没有指定需要编译c源文件的目录。实际上,g2lib及上一级目录中的源文件,既有f源文件,也有c源文件,都需要编译。所以要修改相应部分的代码。
经过上述修改后,终于出现了需要的o文件,希望这些o文件对后续的wps编译grib2有用,留待验证。
因为之前便以失败的log文件仅有的提示就是找不到那几个o文件。

感谢版主的指引!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-20 22:44:07 | 显示全部楼层
andrewsoong 发表于 2015-9-20 22:14
COMPRESSION_LIBS    = -L/opt/jasper/lib -ljasper \
                      -L/opt/png/lib -lpng12 - ...

恩,这些设置,我在wps编译grib2的时候,在configure.wps里面已经设置了,但是编译依然失败,log文件提示找不到enc_png.o及dec_png.o这两个目标文件。
所以我就一路找回到了wrf编译的结果(尽管之前wrf编译都成功了)。

感谢版主!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-20 22:47:22 | 显示全部楼层
andrewsoong 发表于 2015-9-20 22:14
COMPRESSION_LIBS    = -L/opt/jasper/lib -ljasper \
                      -L/opt/png/lib -lpng12 - ...

请教一下,为什么会有-lpng12和-lpng两个库?我安装的是libpng1.6.18这里的-lpng12是不是得换成-lpng18啊?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表