不熟悉 CMAKE,配置中可能出错 [重复]

Unfamiliar with CMAKE, possible error in configuration [duplicate]

提问人: 提问时间:6/1/2022 最后编辑:Nic3500 更新时间:6/6/2022 访问量:260

问:

我正在尝试安装(https://github.com/NOAA-EMC/NCEPLIBS)后处理工具包。我已将所需的库下载并安装到构建文件夹中:

#############################Compilers#######################
    export CC=gcc
    export CXX=g++
    export FC=gfortran
    export F77=gfortran
            
    #############################zlib############################
    #Uncalling compilers due to comfigure issue with zlib1.2.12
    #With CC & CXX definied ./configure uses different compiler Flags
    cd $HOME/WRF/Downloads
    tar -xvzf v1.2.12.tar.gz
    cd zlib-1.2.12/
    CC= CXX= ./configure --prefix=$DIR/grib2
    make
    make install
    make check
     
#############################libpng###########################
    cd $HOME/WRF/Downloads
    export LDFLAGS=-L$DIR/grib2/lib
    export CPPFLAGS=-I$DIR/grib2/include
    tar -xvzf libpng-1.6.37.tar.gz
    cd libpng-1.6.37/
    ./configure --prefix=$DIR/grib2
    make
    make install
    make check
    ##############################Llibjpeg#########################
    #Used for nceplibs only
    cd $HOME/WRF/Downloads
    export LDFLAGS=-L$DIR/grib2/lib
    export CPPFLAGS=-I$DIR/grib2/include
    tar -xvzf jpegsrc.v9.tar.gz
    cd jpeg-9
    ./configure --prefix=$DIR/grib2
    make 
    make install
    #############################JasPer############################
    cd $HOME/WRF/Downloads
    unzip jasper-1.900.1.zip
    cd jasper-1.900.1/
    autoreconf -i
    ./configure --prefix=$DIR/grib2
    make
    make install
    
    export JASPERLIB=$DIR/grib2/lib
    export JASPERINC=$DIR/grib2/include
    ##############################MPICH############################
    cd $HOME/WRF/Downloads
    tar -xvzf mpich-4.0.2.tar.gz
    cd mpich-4.0.2/
    ./configure --prefix=$DIR/MPICH --with-device=ch3 FFLAGS=-fallow-argument-mismatch FCFLAGS=-fallow-argument-mismatch
    make
    make install
    make check
    
    export PATH=$DIR/MPICH/bin:$PATH
    
    #############################hdf5 library for netcdf4 functionality############################
    cd $HOME/WRF/Downloads
    tar -xvzf hdf5-1_12_2.tar.gz
    cd hdf5-hdf5-1_12_2
    ./configure --prefix=$DIR/grib2 --with-zlib=$DIR/grib2 --enable-hl --enable-fortran
    make 
    make install
    make check
    
    export HDF5=$DIR/grib2
    export LD_LIBRARY_PATH=$DIR/grib2/lib:$LD_LIBRARY_PATH
    
    ##############################Install NETCDF C Library############################
    cd $HOME/WRF/Downloads
    tar -xzvf v4.8.1.tar.gz
    cd netcdf-c-4.8.1/
    export CPPFLAGS=-I$DIR/grib2/include 
    export LDFLAGS=-L$DIR/grib2/lib
    ./configure --prefix=$DIR/NETCDF --disable-dap
    make 
    make install
    make check
    
    export PATH=$DIR/NETCDF/bin:$PATH
    export NETCDF=$DIR/NETCDF
    
    ##############################NetCDF fortran library############################
    cd $HOME/WRF/Downloads
    tar -xvzf v4.5.4.tar.gz
    cd netcdf-fortran-4.5.4/
    export LD_LIBRARY_PATH=$DIR/NETCDF/lib:$LD_LIBRARY_PATH
    export CPPFLAGS=-I$DIR/NETCDF/include 
    export LDFLAGS=-L$DIR/NETCDF/lib
    ./configure --prefix=$DIR/NETCDF --disable-shared
    make 
    make install
    make check

现在我正在执行nceplibs的安装命令:

cd $HOME/WRF/Downloads
git clone https://github.com/NOAA-EMC/NCEPLIBS
cd NCEPLIBS
mkdir -p build && cd build
export CC=gcc
export FC=gfortran
export CXX=g++
export FFLGAS=-fallow-argument-mismatch
export FCFLAGS=-fallow-argument-mismatch

export JPEG_LIBRARY=/home/will/WRF/Libs/grib2/lib
export JPEG_INCLUDE_DIR=/home/will/WRF/Libs/grib2/include
export JASPER_LIBRARIES=/home/will/WRF/Libs/grib2/lib
export JASPER_INCLUDE_DIR=/home/will/WRF/Libs/grib2/include

export INSTALL_PREFIX=$HOME/WRF/Libs/nceplibs
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} ..
make
make install

但是,每当我尝试运行 make 命令时,它都会说找不到 JASPER 和 JPEG 的导出。我相信这与有关,但我不是 100% 确定。cmake

这是我在终端上看到的错误。

[ 39%] Completed 'w3nco'
[ 40%] Built target w3nco
[ 41%] Performing update step for 'g2'
[ 42%] No patch step for 'g2'
[ 42%] Performing configure step for 'g2'
-- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR) 
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Jasper (missing: JASPER_LIBRARIES JASPER_INCLUDE_DIR
  JPEG_LIBRARIES)
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.22/Modules/FindJasper.cmake:62 (find_package_handle_standard_args)
  CMakeLists.txt:24 (find_package)

-- Configuring incomplete, errors occurred!
See also "/home/will/WRF/Downloads/NCEPLIBS/build/g2/src/g2-build/CMakeFiles/CMakeOutput.log".
make[2]: *** [CMakeFiles/g2.dir/build.make:92: g2/src/g2-stamp/g2-configure] Error 1
make[1]: *** [CMakeFiles/Makefile2:348: CMakeFiles/g2.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

我不确定我是否必须将这些值放入 以便它们被拾取,或者我是否缺少命令。$PATHcmake

bash ubuntu cmake makefile 语法错误

评论

0赞 paulyang0125 6/1/2022
键入以查看它是否与 NCEPLIBS 测试的版本匹配。即 cmake-3.16.3。如果没有,请删除并安装特定版本(您可以从 cmake.org/files/v3.16 中找到其 tarball,然后重建 NCEPLIBScmake --version
0赞 6/1/2022
较新的 cmake 可能是问题所在?它不会向后兼容吗?
0赞 paulyang0125 6/1/2022
您正在解决环境设置问题,因此我建议您首先满足 NCEPLIBS 软件要求 (github.com/NOAA-EMC/NCEPLIBS#required-software),然后如果该配置有效,您可以开始缩小导致问题的范围。
0赞 6/1/2022
我会试一试,看看会发生什么
0赞 Tsyvarev 6/2/2022
如果你将库(zlib、libpng 等)安装自定义前缀中,那么你需要告诉 CMake 关于该前缀的信息。最简单的方法是将此前缀分配给变量,如我的答案中所述。我们这样的设置 CMake 应该能够在没有特定于库的提示的情况下找到所有这些库。CMAKE_PREFIX_PATH

答:

0赞 user16541602 6/6/2022 #1
 cmake -DCMAKE_PREFIX_PATH:PATH=$DIR/grib2 -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX}  ..