ubuntu12.10下OpenFoam的编译
最近在ubuntu12.10下编译OpenFoam,遇到一些问题,小记一下。
首先到官网下载源码包(我这里下载的是OpenFOAM-2.3.0.tgz,ThirdParty-2.3.0.tgz)。
1.下载解压源码包
首先创建OpenFOAM文件夹,将压缩包解压到OpenFOAM文件夹下
mkdir OpenFOAM
cd OpenFOAM tar -xvf OpenFOAM-2.3..tgz
tar -xvf ThirdParty-2.3..tgz
2.设置变量环境
此处OpenFOAM的环境非默认环境,所以
gedit ~/.bashrc
在最后几行添加:
export FOAM_INST_DIR=$HOME/OpenFOAM
foamDotFile=$FOAM_INST_DIR/OpenFOAM-2.3./etc/bashrc
[ -f $foamDotFile ] && . $foamDotFile
然后在终端执行
. $HOME/.bashrc
3.安装依赖包
apt-get install build-essential flex bison cmake zlib1g-dev qt4-dev-tools libqt4-dev gnuplot libreadline-dev libncurses-dev libxt-dev
问题出现,显示无法找到软件包。apt-get update显示一些网址404 notfound,原因是13.04版本已经陈旧,sourcelist需要更新。手动更新/etc/apt/sources.list文件内容为:
deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-security main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-security main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
然后
apt-get update
然后就能找到这些软件包了。
4.编译源代码
cd $WM_PROJECT_DIR/bin
./foamSystemCheck
cd $WM_PROJECT_DIR
./Allwmake
接下来就是好几个小时的等待
5.编译Paraview和PV3FoamReader模块
A. 编译Paraview
cd $WM_THIRD_PARTY_DIR
./Allclean
./makeParaView
B.编译
PV3FoamReader
cd $FOAM_UTILITIES/postProcessing/graphics/PV3Readers
./Allwclean
./Allwmake
6.测试安装
cd $FOAM_TUTORIALS/incompressible/icoFoam/cavity
blockMesh
在此报错,缺少依赖库libmpi.so.1文件,下载源码http://packages.ubuntu.com/precise/amd64/libopenmpi1.3
编译
./configure
make
得到3个动态库(.libs为隐藏文件夹)
./ompi/.libs/libmpi.so.
./ompi/.libs/libmpi.so.0.0.
./ompi/.libs/libmpi.so
,将3个动态库移到默认路径/usr/lib下
sudo cp -r ./ompi/.libs/libmpi.so* /usr/lib
blockMesh
icoFoam通过,
paraFoam的时候遇到问题
FATAL ERROR: ParaView reader module libraries do not exist Please build the reader module before continuing:
cd $FOAM_UTILITIES/postProcessing/graphics/PV4Readers
./Allwclean
./Allwmake
在./Allwmake时遇到问题
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file vtkPV4Readers.C
could not open file vtkDataArraySelection.h for source file vtkPV4Readers.C due to No such file or directory
could not open file vtkDataSet.h for source file vtkPV4Readers.C due to No such file or directory
could not open file vtkMultiBlockDataSet.h for source file vtkPV4Readers.C due to No such file or directory
could not open file vtkInformation.h for source file vtkPV4Readers.C due to No such file or directory
SOURCE=vtkPV4Readers.C ; g++ -m32 -Dlinux -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth- -I/home/jack/OpenFOAM/ThirdParty-2.3./platforms/linuxGcc/ParaView-4.1./include/paraview-4.1 -IlnInclude -I. -I/home/jack/OpenFOAM/OpenFOAM-2.3./src/OpenFOAM/lnInclude -I/home/jack/OpenFOAM/OpenFOAM-2.3./src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linuxGccDPOpt/vtkPV4Readers.o
vtkPV4Readers.C::: fatal error: vtkDataArraySelection.h: No such file or directory
compilation terminated.
make: *** [Make/linuxGccDPOpt/vtkPV4Readers.o] Error
+ [ -d /home/jack/OpenFOAM/ThirdParty-2.3./platforms/linuxGcc/ParaView-4.1. -a -r /home/jack/OpenFOAM/ThirdParty-2.3./platforms/linuxGcc/ParaView-4.1. ]
+ wmake libso vtkPV4blockMesh
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file vtkPV4blockMesh.C
could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4blockMesh.C due to No such file or directory
could not open file vtkDataArraySelection.h for source file vtkPV4blockMesh.C due to No such file or directory
could not open file vtkMultiBlockDataSet.h for source file vtkPV4blockMesh.C due to No such file or directory
could not open file vtkRenderer.h for source file vtkPV4blockMesh.C due to No such file or directory
could not open file vtkTextActor.h for source file vtkPV4blockMesh.C due to No such file or directory
could not open file vtkTextProperty.h for source file vtkPV4blockMesh.C due to No such file or directory
Making dependency list for source file vtkPV4blockMeshConvert.C
could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
could not open file vtkPoints.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
could not open file vtkCellArray.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
could not open file vtkDataArraySelection.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
could not open file vtkMultiBlockDataSet.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
could not open file vtkPolyData.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
could not open file vtkUnstructuredGrid.h for source file vtkPV4blockMeshConvert.C due to No such file or directory
Making dependency list for source file vtkPV4blockMeshUtils.C
could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4blockMeshUtils.C due to No such file or directory
could not open file vtkDataArraySelection.h for source file vtkPV4blockMeshUtils.C due to No such file or directory
could not open file vtkDataSet.h for source file vtkPV4blockMeshUtils.C due to No such file or directory
could not open file vtkMultiBlockDataSet.h for source file vtkPV4blockMeshUtils.C due to No such file or directory
could not open file vtkInformation.h for source file vtkPV4blockMeshUtils.C due to No such file or directory
SOURCE=vtkPV4blockMesh.C ; g++ -m32 -Dlinux -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth- -I/home/jack/OpenFOAM/OpenFOAM-2.3./src/meshTools/lnInclude -I/home/jack/OpenFOAM/OpenFOAM-2.3./src/mesh/blockMesh/lnInclude -I/home/jack/OpenFOAM/ThirdParty-2.3./platforms/linuxGcc/ParaView-4.1./include/paraview-4.1 -I../../vtkPV4Readers/lnInclude -I../PV4blockMeshReader -IlnInclude -I. -I/home/jack/OpenFOAM/OpenFOAM-2.3./src/OpenFOAM/lnInclude -I/home/jack/OpenFOAM/OpenFOAM-2.3./src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linuxGccDPOpt/vtkPV4blockMesh.o
In file included from vtkPV4blockMesh.C:::
../PV4blockMeshReader/vtkPV4blockMeshReader.h::: fatal error: vtkMultiBlockDataSetAlgorithm.h: No such file or directory
compilation terminated.
make: *** [Make/linuxGccDPOpt/vtkPV4blockMesh.o] Error
+ cd PV4blockMeshReader
+ mkdir -p Make/linuxGccDPOpt
+ cd Make/linuxGccDPOpt
+ cmake ../..
-- The C compiler identification is GNU 4.7.
-- The CXX compiler identification is GNU 4.7.
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at CMakeLists.txt: (FIND_PACKAGE):
By not providing "FindParaView.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "ParaView",
but CMake did not find one. Could not find a package configuration file provided by "ParaView" with any
of the following names: ParaViewConfig.cmake
paraview-config.cmake Add the installation prefix of "ParaView" to CMAKE_PREFIX_PATH or set
"ParaView_DIR" to a directory containing one of the above files. If
"ParaView" provides a separate development package or SDK, be sure it has
been installed. -- Configuring incomplete, errors occurred!
+ make
make: *** No targets specified and no makefile found. Stop.
+ [ -d /home/jack/OpenFOAM/ThirdParty-2.3./platforms/linuxGcc/ParaView-4.1. -a -r /home/jack/OpenFOAM/ThirdParty-2.3./platforms/linuxGcc/ParaView-4.1. ]
+ wmake libso vtkPV4Foam
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file vtkPV4Foam.C
could not open file vtkPoints.h for source file vtkPV4Foam.C due to No such file or directory
could not open file vtkCellArray.h for source file vtkPV4Foam.C due to No such file or directory
could not open file vtkPolyData.h for source file vtkPV4Foam.C due to No such file or directory
could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4Foam.C due to No such file or directory
could not open file vtkDataArraySelection.h for source file vtkPV4Foam.C due to No such file or directory
could not open file vtkMultiBlockDataSet.h for source file vtkPV4Foam.C due to No such file or directory
could not open file vtkRenderer.h for source file vtkPV4Foam.C due to No such file or directory
could not open file vtkTextActor.h for source file vtkPV4Foam.C due to No such file or directory
could not open file vtkTextProperty.h for source file vtkPV4Foam.C due to No such file or directory
Making dependency list for source file vtkPV4FoamFields.C
could not open file vtkPoints.h for source file vtkPV4FoamFields.C due to No such file or directory
could not open file vtkCellArray.h for source file vtkPV4FoamFields.C due to No such file or directory
could not open file vtkPolyData.h for source file vtkPV4FoamFields.C due to No such file or directory
could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4FoamFields.C due to No such file or directory
could not open file vtkDataArraySelection.h for source file vtkPV4FoamFields.C due to No such file or directory
could not open file vtkUnstructuredGrid.h for source file vtkPV4FoamFields.C due to No such file or directory
could not open file vtkCellData.h for source file vtkPV4FoamFields.C due to No such file or directory
could not open file vtkFloatArray.h for source file vtkPV4FoamFields.C due to No such file or directory
could not open file vtkMultiBlockDataSet.h for source file vtkPV4FoamFields.C due to No such file or directory
could not open file vtkPointData.h for source file vtkPV4FoamFields.C due to No such file or directory
Making dependency list for source file vtkPV4FoamMesh.C
could not open file vtkPoints.h for source file vtkPV4FoamMesh.C due to No such file or directory
could not open file vtkCellArray.h for source file vtkPV4FoamMesh.C due to No such file or directory
could not open file vtkPolyData.h for source file vtkPV4FoamMesh.C due to No such file or directory
could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4FoamMesh.C due to No such file or directory
could not open file vtkDataArraySelection.h for source file vtkPV4FoamMesh.C due to No such file or directory
could not open file vtkMultiBlockDataSet.h for source file vtkPV4FoamMesh.C due to No such file or directory
could not open file vtkUnstructuredGrid.h for source file vtkPV4FoamMesh.C due to No such file or directory
Making dependency list for source file vtkPV4FoamMeshLagrangian.C
could not open file vtkPoints.h for source file vtkPV4FoamMeshLagrangian.C due to No such file or directory
could not open file vtkCellArray.h for source file vtkPV4FoamMeshLagrangian.C due to No such file or directory
could not open file vtkPolyData.h for source file vtkPV4FoamMeshLagrangian.C due to No such file or directory
Making dependency list for source file vtkPV4FoamMeshSet.C
could not open file vtkPoints.h for source file vtkPV4FoamMeshSet.C due to No such file or directory
could not open file vtkCellArray.h for source file vtkPV4FoamMeshSet.C due to No such file or directory
could not open file vtkPolyData.h for source file vtkPV4FoamMeshSet.C due to No such file or directory
Making dependency list for source file vtkPV4FoamMeshVolume.C
could not open file vtkPoints.h for source file vtkPV4FoamMeshVolume.C due to No such file or directory
could not open file vtkCellArray.h for source file vtkPV4FoamMeshVolume.C due to No such file or directory
could not open file vtkPolyData.h for source file vtkPV4FoamMeshVolume.C due to No such file or directory
could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4FoamMeshVolume.C due to No such file or directory
could not open file vtkIdTypeArray.h for source file vtkPV4FoamMeshVolume.C due to No such file or directory
could not open file vtkUnstructuredGrid.h for source file vtkPV4FoamMeshVolume.C due to No such file or directory
Making dependency list for source file vtkPV4FoamMeshZone.C
could not open file vtkPoints.h for source file vtkPV4FoamMeshZone.C due to No such file or directory
could not open file vtkCellArray.h for source file vtkPV4FoamMeshZone.C due to No such file or directory
could not open file vtkPolyData.h for source file vtkPV4FoamMeshZone.C due to No such file or directory
Making dependency list for source file vtkPV4FoamUpdateInfo.C
could not open file vtkPoints.h for source file vtkPV4FoamUpdateInfo.C due to No such file or directory
could not open file vtkCellArray.h for source file vtkPV4FoamUpdateInfo.C due to No such file or directory
could not open file vtkPolyData.h for source file vtkPV4FoamUpdateInfo.C due to No such file or directory
could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4FoamUpdateInfo.C due to No such file or directory
could not open file vtkDataArraySelection.h for source file vtkPV4FoamUpdateInfo.C due to No such file or directory
Making dependency list for source file vtkPV4FoamUtils.C
could not open file vtkPoints.h for source file vtkPV4FoamUtils.C due to No such file or directory
could not open file vtkCellArray.h for source file vtkPV4FoamUtils.C due to No such file or directory
could not open file vtkPolyData.h for source file vtkPV4FoamUtils.C due to No such file or directory
could not open file vtkMultiBlockDataSetAlgorithm.h for source file vtkPV4FoamUtils.C due to No such file or directory
could not open file vtkDataArraySelection.h for source file vtkPV4FoamUtils.C due to No such file or directory
could not open file vtkDataSet.h for source file vtkPV4FoamUtils.C due to No such file or directory
could not open file vtkMultiBlockDataSet.h for source file vtkPV4FoamUtils.C due to No such file or directory
could not open file vtkInformation.h for source file vtkPV4FoamUtils.C due to No such file or directory
SOURCE=vtkPV4Foam.C ; g++ -m32 -Dlinux -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth- -I/home/jack/OpenFOAM/OpenFOAM-2.3./src/meshTools/lnInclude -I/home/jack/OpenFOAM/OpenFOAM-2.3./src/finiteVolume/lnInclude -I/home/jack/OpenFOAM/OpenFOAM-2.3./src/lagrangian/basic/lnInclude -I../../vtkPV4Readers/lnInclude -I../PV4FoamReader -I/home/jack/OpenFOAM/ThirdParty-2.3./platforms/linuxGcc/ParaView-4.1./include/paraview-4.1 -UHAS_VTK_POLYHEDRON -IlnInclude -I. -I/home/jack/OpenFOAM/OpenFOAM-2.3./src/OpenFOAM/lnInclude -I/home/jack/OpenFOAM/OpenFOAM-2.3./src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linuxGccDPOpt/vtkPV4Foam.o
In file included from vtkPV4FoamTemplates.C::,
from vtkPV4Foam.H:,
from vtkPV4Foam.C::
vtkOpenFOAMPoints.H::: fatal error: vtkPoints.h: No such file or directory
compilation terminated.
make: *** [Make/linuxGccDPOpt/vtkPV4Foam.o] Error
+ cd PV4FoamReader
+ mkdir -p Make/linuxGccDPOpt
+ cd Make/linuxGccDPOpt
+ cmake ../..
-- The C compiler identification is GNU 4.7.
-- The CXX compiler identification is GNU 4.7.
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at CMakeLists.txt: (FIND_PACKAGE):
By not providing "FindParaView.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "ParaView",
but CMake did not find one. Could not find a package configuration file provided by "ParaView" with any
of the following names: ParaViewConfig.cmake
paraview-config.cmake Add the installation prefix of "ParaView" to CMAKE_PREFIX_PATH or set
"ParaView_DIR" to a directory containing one of the above files. If
"ParaView" provides a separate development package or SDK, be sure it has
been installed. -- Configuring incomplete, errors occurred!
+ make
make: *** No targets specified and no makefile found. Stop.
是导入资源路径问题,
gedit ~/.bashrc
把
#export FOAM_INST_DIR=$HOME/OpenFOAM #foamDotFile=$FOAM_INST_DIR/OpenFOAM-2.3./etc/bashrc #[ -f $foamDotFile ] && . $foamDotFile
这几行注释掉,然后终端执行
source ~/.bashrc
可以把
export FOAM_INST_DIR=$HOME/OpenFOAM foamDotFile=$FOAM_INST_DIR/OpenFOAM-2.3./etc/bashrc [ -f $foamDotFile ] && . $foamDotFile
解除注释
然后执行
cd $FOAM_UTILITIES/postProcessing/graphics/PV4Readers ./Allwclean ./Allwmake
此次执行成功
然后到OpenFOAM/OpenFOAM-2.3.0/tutorials/incompressible/icoFoam/cavity$目录,执行paraFoam成功弹出界面。
至此,OpenFOAM在Ubuntu12.10下编译成功。
ubuntu12.10下OpenFoam的编译的更多相关文章
- 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用)
目录 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用) 背景 下载地址 仓库地址 安装部署 msys2 安装 配置环境变量 ...
- Ubuntu12.10下安装Python3
设置Python3.2为默认版本 ubuntu12.10下默认安装了Python2.7和Python3.2.3,并且设置了Python2.7为默认的版本,因此如果讨厌麻烦的话,可以直接将Python3 ...
- ubuntu12.10下arm-linux-gcc交叉编译环境的搭建
交叉编译环境搭建的原因:通俗上讲,因为嵌入式系统可用资源比较少:几十M的ARM 二三百M的flash相对我们的pc机来说资源真的没法比.所以,为了解决这种局面就将PC机等作为主机,搭建开发环境,进行编 ...
- Ubuntu12.10 下搭建基于KVM-QEMU的虚拟机环境(八)
Libvirt 是用c写的一个管理虚拟机及其资源(如网络.存储和外设等)的工具库,它不仅支持KVM/QEMU,它还支持xen,Vmware,OpenVZ和VirtualBox等其他HyperVisor ...
- Ubuntu12.10 下搭建基于KVM-QEMU的虚拟机环境(三)
原则上来说,qemu, libvirt, libusb, usbredir, spice等都可以通过 apt-get install的方式从Ubuntu源在线安装.但是这样如果碰到一点问题,就比较难办 ...
- Ubuntu 14.10 下Hadoop代码编译问题总结
问题1 protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionExceptio ...
- Ubuntu12.10下Python(pyodbc)访问SQL Server解决方案
一.基本原理 请查看这个网址,讲得灰常详细:http://www.jeffkit.info/2010/01/476/ 二.实现步骤 1.安装linux下SQL Server的驱动程序 安装Free ...
- Ubuntu12.10 下搭建基于KVM-QEMU的虚拟机环境(十六)
今天我们继续实验Bridge方式的网络配置. Bridge的逻辑原理图如下: 上图中的“br0”就充当了一个桥的作用,主机上的物理网口eth0等根据需要加入到这个桥里面,所有虚拟机要跟外界通信都通过这 ...
- Ubuntu12.10 下搭建基于KVM-QEMU的虚拟机环境(十三)
今天我们实验libvirt提供的快照功能,快照可以用于系统恢复,防止安装了某些软件或中病毒等情况导致系统损毁的情况. 一.快照类型 1) 磁盘快照 内部的:快照驻留在原来的镜像文件内部 ...
随机推荐
- PAT乙级1002. 写出这个数 (20)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每 ...
- 一个简单sql注入的poc
最近在提高自己编程能力,拿一些实用的小工具练下.该脚本为python语言,主要涉及模块urllib,re. 功能:验证CmsEasy5.5爆账号密码 实验用源码:http://pan.baidu.co ...
- 最受欢迎的iOS第三方SDK
http://www.raywenderlich.com/forums/viewtopic.php?t=4496
- .net C# 苹果消息推送 工具类
public class AppleAPNSMessage { /// <summary> /// 苹果信息推送 证书 路径(注意测试版跟正式发布版证书上不一样) /// </sum ...
- scala实现快速排序
scala> def qSort(a: List[Int]): List[Int] = { | ) a | else qSort( a.filter(a.head > _ )) ++ | ...
- 用border做一个移动端常见的返回按钮
第一步 .hs1{ float: left; .mt(.25rem); .ml(.12rem); width: .3rem; height: .3rem; border-top: 2px solid ...
- openstack私有云布署实践【13.2 网络Neutron-compute节点配置(办公网环境)】
所有compute节点 下载安装组件 # yum install openstack-neutron openstack-neutron-linuxbridge ebtables ipset -y ...
- Linux使用rsync客户端与服务端同步目录进行备份
一.服务端设置 1. 修改 server 端配置 # vi /etc/rsyncd.conf 修改: uid = nobody # 该选项指定当该模块传输文件时守护进程应该具有的uid.默认值为&qu ...
- 真实代理(RealProxy)在WCF中的运用
在WCF中,当我们在调用服务端的方法时,一般有两点需要考虑:1.捕获服务端的异常信息,记录日志:2.及时关闭会话信道,当调用超时或调用失败时及时中断会话信道.我们一般会像下面这样处理(以Calcula ...
- scroll、client和offset的区别
scroll.client和offset的区别:http://www.cnblogs.com/pcd12321/p/4448420.html