爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 龙行天下

Ubuntu12.4.4下安装netcdf4.2报错

[复制链接]
发表于 2014-3-11 15:39:30 | 显示全部楼层

哈哈,你改成默认当然又会出现原来的错误。我的意思是,确保zlib安装成功后再改回来。

Syntax error: "(" unexpected
这个错误大多是因为ubuntu采用dash shell,而不是bash shell的原因。所以,你执行sudo dpkg-reconfigure dash,并选择no,将重新配置dash,并使其不作为默认的shell 。

/bin/sh: ./minigzip: 无法执行二进制文件错误
/bin/sh实际上是一个链接,指向默认的shell。ubuntu默认指向dash,但经过上面的重新配置后,应该就不是了。不过,你最好cd到/bin目录下,ls -l,看看/bin/sh是否确实指向了bash。或者,进入minigzip所在目录,用bash ./minigzip手动执行一下,看行不行。

正如你说,make成功了,make check不过也不一定说明zlib编译有问题,只是为了在install之前在确认一下。实在不行,就直接make install,只要后面其它软件链接时木有问题就行了。
密码修改失败请联系微信:mofangbao
发表于 2014-3-11 16:00:18 | 显示全部楼层
龙行天下 发表于 2014-3-11 15:18
前辈你好,我按照你的办法修改了一下,又报错了,提示无法执行二进制文件,详细报错如下:
zll@zll-Thin ...

不好意思,刚看到也不是bash的问题。
我刚下载了一个zlib1.2.6版,发现make check时不需要执行./minigzip。所以,能否把你的Makefile发给我瞅瞅?
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-11 16:23:25 | 显示全部楼层
longlivehj 发表于 2014-3-11 16:00
不好意思,刚看到也不是bash的问题。
我刚下载了一个zlib1.2.6版,发现make check时不需要执行./minigzi ...

ubuntu下没办法传这个附件,我只接把makefile里面的内容粘贴给你啊
# Makefile for zlib
# Copyright (C) 1995-2011 Jean-loup Gailly.
# For conditions of distribution and use, see copyright notice in zlib.h

# To compile and test, type:
#    ./configure; make test
# Normally configure builds both a static and a shared library.
# If you want to build just a static library, use: ./configure --static

# To use the asm code, type:
#    cp contrib/asm?86/match.S ./match.S
#    make LOC=-DASMV OBJA=match.o

# To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type:
#    make install
# To install in $HOME instead of /usr/local, use:
#    make install prefix=$HOME

CC=gcc

CFLAGS=-O3  -m64 -D_LARGEFILE64_SOURCE=1
#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
#CFLAGS=-g -DDEBUG
#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
#           -Wstrict-prototypes -Wmissing-prototypes

SFLAGS=-O3  -fPIC -m64 -D_LARGEFILE64_SOURCE=1
LDFLAGS=
TEST_LDFLAGS=-L. libz.a
LDSHARED=gcc
CPP=gcc -E

STATICLIB=libz.a
SHAREDLIB=
SHAREDLIBV=
SHAREDLIBM=
LIBS=$(STATICLIB) $(SHAREDLIBV)

AR=ar
ARFLAGS=rc
RANLIB=ranlib
LDCONFIG=ldconfig
LDSHAREDLIBC=-lc
TAR=tar
SHELL=/bin/sh
EXE=

prefix =/home/zll/netcdf
exec_prefix =${prefix}
libdir =${exec_prefix}/lib
sharedlibdir =${libdir}
includedir =${prefix}/include
mandir =${prefix}/share/man
man3dir = ${mandir}/man3
pkgconfigdir = ${libdir}/pkgconfig
tempfile := $(shell mktemp -u __XXXXXX)

OBJZ = adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o
OBJG = compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o
OBJC = $(OBJZ) $(OBJG)

PIC_OBJZ = adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo
PIC_OBJG = compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo
PIC_OBJC = $(PIC_OBJZ) $(PIC_OBJG)

# to use the asm code: make OBJA=match.o, PIC_OBJA=match.lo
OBJA =
PIC_OBJA =

OBJS = $(OBJC) $(OBJA)

PIC_OBJS = $(PIC_OBJC) $(PIC_OBJA)

all: static all64

static: example$(EXE) minigzip$(EXE)

shared: examplesh$(EXE) minigzipsh$(EXE)

all64: example64$(EXE) minigzip64$(EXE)

check: test

test: all teststatic test64

teststatic: static
    @if echo hello world | ./minigzip | ./minigzip -d && ./example; then \
      echo '        *** zlib test OK ***'; \
    else \
      echo '        *** zlib test FAILED ***'; false; \
    fi
    -@rm -f foo.gz

testshared: shared
    @LD_LIBRARY_PATH=`pwd`:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \
    LD_LIBRARYN32_PATH=`pwd`:$(LD_LIBRARYN32_PATH) ; export LD_LIBRARYN32_PATH; \
    DYLD_LIBRARY_PATH=`pwd`:$(DYLD_LIBRARY_PATH) ; export DYLD_LIBRARY_PATH; \
    SHLIB_PATH=`pwd`:$(SHLIB_PATH) ; export SHLIB_PATH; \
    if echo hello world | ./minigzipsh | ./minigzipsh -d && ./examplesh; then \
      echo '        *** zlib shared test OK ***'; \
    else \
      echo '        *** zlib shared test FAILED ***'; false; \
    fi
    -@rm -f foo.gz

test64: all64
    @if echo hello world | ./minigzip64 | ./minigzip64 -d && ./example64; then \
      echo '        *** zlib 64-bit test OK ***'; \
    else \
      echo '        *** zlib 64-bit test FAILED ***'; false; \
    fi
    -@rm -f foo.gz

infcover.o: test/infcover.c zlib.h zconf.h
    $(CC) $(CFLAGS) -I. -c -o $@ test/infcover.c

infcover: infcover.o libz.a
    $(CC) $(CFLAGS) -o $@ infcover.o libz.a

cover: infcover
    rm -f *.gcda
    ./infcover
    gcov inf*.c

libz.a: $(OBJS)
    $(AR) $(ARFLAGS) $@ $(OBJS)
    -@ ($(RANLIB) $@ || true) >/dev/null 2>&1

match.o: match.S
    $(CPP) match.S > _match.s
    $(CC) -c _match.s
    mv _match.o match.o
    rm -f _match.s

match.lo: match.S
    $(CPP) match.S > _match.s
    $(CC) -c -fPIC _match.s
    mv _match.o match.lo
    rm -f _match.s

example.o: test/example.c zlib.h zconf.h
    $(CC) $(CFLAGS) -I. -c -o $@ test/example.c

minigzip.o: test/minigzip.c zlib.h zconf.h
    $(CC) $(CFLAGS) -I. -c -o $@ test/minigzip.c

example64.o: test/example.c zlib.h zconf.h
    $(CC) $(CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -c -o $@ test/example.c

minigzip64.o: test/minigzip.c zlib.h zconf.h
    $(CC) $(CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -c -o $@ test/minigzip.c

.SUFFIXES: .lo

.c.lo:
    -@mkdir objs 2>/dev/null || test -d objs
    $(CC) $(SFLAGS) -DPIC -c -o objs/$*.o $<
    -@mv objs/$*.o $@

placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a
    $(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS)
    rm -f $(SHAREDLIB) $(SHAREDLIBM)
    ln -s $@ $(SHAREDLIB)
    ln -s $@ $(SHAREDLIBM)
    -@rmdir objs

example$(EXE): example.o $(STATICLIB)
    $(CC) $(CFLAGS) -o $@ example.o $(TEST_LDFLAGS)

minigzip$(EXE): minigzip.o $(STATICLIB)
    $(CC) $(CFLAGS) -o $@ minigzip.o $(TEST_LDFLAGS)

examplesh$(EXE): example.o $(SHAREDLIBV)
    $(CC) $(CFLAGS) -o $@ example.o -L. $(SHAREDLIBV)

minigzipsh$(EXE): minigzip.o $(SHAREDLIBV)
    $(CC) $(CFLAGS) -o $@ minigzip.o -L. $(SHAREDLIBV)

example64$(EXE): example64.o $(STATICLIB)
    $(CC) $(CFLAGS) -o $@ example64.o $(TEST_LDFLAGS)

minigzip64$(EXE): minigzip64.o $(STATICLIB)
    $(CC) $(CFLAGS) -o $@ minigzip64.o $(TEST_LDFLAGS)

install-libs: $(LIBS)
    -@if [ ! -d $(DESTDIR)$(exec_prefix)  ]; then mkdir -p $(DESTDIR)$(exec_prefix); fi
    -@if [ ! -d $(DESTDIR)$(libdir)       ]; then mkdir -p $(DESTDIR)$(libdir); fi
    -@if [ ! -d $(DESTDIR)$(sharedlibdir) ]; then mkdir -p $(DESTDIR)$(sharedlibdir); fi
    -@if [ ! -d $(DESTDIR)$(man3dir)      ]; then mkdir -p $(DESTDIR)$(man3dir); fi
    -@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi
    cp $(STATICLIB) $(DESTDIR)$(libdir)
    chmod 644 $(DESTDIR)$(libdir)/$(STATICLIB)
    -@($(RANLIB) $(DESTDIR)$(libdir)/libz.a || true) >/dev/null 2>&1
    -@if test -n "$(SHAREDLIBV)"; then \
      cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir); \
      echo "cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)"; \
      chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV); \
      echo "chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV)"; \
      rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
      ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB); \
      ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
      ($(LDCONFIG) || true)  >/dev/null 2>&1; \
    fi
    cp zlib.3 $(DESTDIR)$(man3dir)
    chmod 644 $(DESTDIR)$(man3dir)/zlib.3
    cp zlib.pc $(DESTDIR)$(pkgconfigdir)
    chmod 644 $(DESTDIR)$(pkgconfigdir)/zlib.pc
# The ranlib in install is needed on NeXTSTEP which checks file times
# ldconfig is for Linux

install: install-libs
    -@if [ ! -d $(DESTDIR)$(includedir)   ]; then mkdir -p $(DESTDIR)$(includedir); fi
    cp zlib.h zconf.h $(DESTDIR)$(includedir)
    chmod 644 $(DESTDIR)$(includedir)/zlib.h $(DESTDIR)$(includedir)/zconf.h

uninstall:
    cd $(DESTDIR)$(includedir); rm -f zlib.h zconf.h
    cd $(DESTDIR)$(libdir); rm -f libz.a; \
    if test -n "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \
      rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \
    fi
    cd $(DESTDIR)$(man3dir); rm -f zlib.3
    cd $(DESTDIR)$(pkgconfigdir); rm -f zlib.pc

docs: zlib.3.pdf

zlib.3.pdf: zlib.3
    groff -mandoc -f H -T ps zlib.3 | ps2pdf - zlib.3.pdf

zconf.h.cmakein: zconf.h.in
    -@echo "/#define ZCONF_H/ a\\\\\n#cmakedefine Z_PREFIX\\\\\n#cmakedefine Z_HAVE_UNISTD_H\n" > $(tempfile)
    -@sed -f $(tempfile) zconf.h.in > zconf.h.cmakein
    -@touch -r zconf.h.in zconf.h.cmakein
    -@rm $(tempfile)

zconf: zconf.h.in
    cp -p zconf.h.in zconf.h

mostlyclean: clean
clean:
    rm -f *.o *.lo *~ \
       example$(EXE) minigzip$(EXE) examplesh$(EXE) minigzipsh$(EXE) \
       example64$(EXE) minigzip64$(EXE) \
       infcover \
       libz.* foo.gz so_locations \
       _match.s maketree contrib/infback9/*.o
    rm -rf objs
    rm -f *.gcda *.gcno *.gcov
    rm -f contrib/infback9/*.gcda contrib/infback9/*.gcno contrib/infback9/*.gcov

maintainer-clean: distclean
distclean: clean zconf zconf.h.cmakein docs
    rm -f Makefile zlib.pc configure.log
    -@rm -f .DS_Store
    -@printf 'all:\n\t-@echo "Please use ./configure first.  Thank you."\n' > Makefile
    -@printf '\ndistclean:\n\tmake -f Makefile.in distclean\n' >> Makefile
    -@touch -r Makefile.in Makefile

tags:
    etags *.[ch]

depend:
    makedepend -- $(CFLAGS) -- *.[ch]

# DO NOT DELETE THIS LINE -- make depend depends on it.

adler32.o zutil.o: zutil.h zlib.h zconf.h
gzclose.o gzlib.o gzread.o gzwrite.o: zlib.h zconf.h gzguts.h
compress.o example.o minigzip.o uncompr.o: zlib.h zconf.h
crc32.o: zutil.h zlib.h zconf.h crc32.h
deflate.o: deflate.h zutil.h zlib.h zconf.h
infback.o inflate.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h inffixed.h
inffast.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
inftrees.o: zutil.h zlib.h zconf.h inftrees.h
trees.o: deflate.h zutil.h zlib.h zconf.h trees.h

adler32.lo zutil.lo: zutil.h zlib.h zconf.h
gzclose.lo gzlib.lo gzread.lo gzwrite.lo: zlib.h zconf.h gzguts.h
compress.lo example.lo minigzip.lo uncompr.lo: zlib.h zconf.h
crc32.lo: zutil.h zlib.h zconf.h crc32.h
deflate.lo: deflate.h zutil.h zlib.h zconf.h
infback.lo inflate.lo: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h inffixed.h
inffast.lo: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
inftrees.lo: zutil.h zlib.h zconf.h inftrees.h
trees.lo: deflate.h zutil.h zlib.h zconf.h trees.h

密码修改失败请联系微信:mofangbao
发表于 2014-3-11 16:51:46 | 显示全部楼层
本帖最后由 longlivehj 于 2014-3-11 16:54 编辑
龙行天下 发表于 2014-3-11 16:23
ubuntu下没办法传这个附件,我只接把makefile里面的内容粘贴给你啊
# Makefile for zlib
# Copyright ( ...

看上去没啥问题!我用dash shell编译了一下,也没有问题。

突然想问问,你的系统是32位的还是64位的?configure的参数里面有--64,gcc的参数里面有-m64,这都是指定生成64位的可执行程序。如果你的linux系统是32位,那就尴尬了(无法执行二进制文件)。

如果真是这个问题,把configure后面的--64删掉试试。
./configure --prefix=/home/zll/netcdf --static

评分

参与人数 1金钱 +10 贡献 +2 收起 理由
龙行天下 + 10 + 2 没啥可表示的,给前辈一些积分和贡献吧, 不.

查看全部评分

密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-11 19:14:31 | 显示全部楼层
longlivehj 发表于 2014-3-11 16:51
看上去没啥问题!我用dash shell编译了一下,也没有问题。

突然想问问,你的系统是32位的还是64位的? ...

好的啊,谢谢前辈,我的是32位系统的,我也感觉是这个问题,我这就试一下
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-11 21:01:18 | 显示全部楼层
andrewsoong 发表于 2014-3-10 21:18
GEOS-Chem-Libraries安装步骤
进入GEOS-Chem-Libraries
make PREFIX=root_library_dir GCC=yes(默认使用 ...

前辈,我的系统是32位ubuntu12.04,估计这种安装方法不适合我的机子。我目前想在我的自己上编译CESM1.2.1,请问如果我选择安装netcdf老版本,比如说4.1.3,请问可以编译成功吗?
用户手册上写的是netcdf4.2或者更新一点的版本。
密码修改失败请联系微信:mofangbao
发表于 2014-3-11 21:06:11 | 显示全部楼层
龙行天下 发表于 2014-3-11 21:01
前辈,我的系统是32位ubuntu12.04,估计这种安装方法不适合我的机子。我目前想在我的自己上编译CESM1.2.1 ...

CESM1.2.1我就不知道行不行了~~~毕竟我没试过。@天道酬勤给解答一下~~~
密码修改失败请联系微信:mofangbao
发表于 2014-3-12 09:58:21 | 显示全部楼层
andrewsoong 发表于 2014-3-11 21:06
CESM1.2.1我就不知道行不行了~~~毕竟我没试过。@天道酬勤给解答一下~~~

如果是版本的问题的话,错误信息会有提示的。你用旧版本试着先做做看。。。如果出错再换成新的也行。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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