Cmake
CMake 出錯的原因是什麼?
我正在執行以下腳本來將呼叫 GROMACS 命令的名稱從
gmx
更改為gmx_196g
。該腳本使用 CMake:cd gromacs-2019.6/build_stage3/ suffix=196g install_path=/home/my_username/software/gmx_2019/.local OPTFLAGS="-Ofast -mtune=broadwell" cmake3 .. -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_COMPILER=icc -DCMAKE_C_FLAGS_RELEASE="$OPTFLAGS" \ -DCMAKE_CXX_COMPILER=icpc -DCMAKE_CXX_FLAGS_RELEASE="$OPTFLAGS" \ -DGMX_MPI=ON -DGMX_OPENMP=ON \ -DGMX_GPU=CUDA -DGMX_CUDA_TARGET_SM=60 \ -DGMX_SIMD=AVX2_256 -DGMX_DOUBLE=OFF \ -DGMX_FFT_LIBRARY=mkl \ -DGMX_DEFAULT_SUFFIX=OFF -DGMX_BINARY_SUFFIX=_${suffix} -DGMX_LIBS_SUFFIX=_${suffix} \ -DCMAKE_INSTALL_PREFIX=${install_path} make -j 8 make install cd ../../
但是,我收到此錯誤:
CMake Error: The source directory "/home/my_username/software/gmx_2019/gromacs-2019.6/build_stage3/ -DGMX_FFT_LIBRARY=mkl" does not exist. Specify --help for usage, or press the help button on the CMake GUI. make: *** No rule to make target 'make'. Stop.
為什麼錯誤突出顯示 -DGMX_FFT_LIBRARY=mkl 和我的源目錄?我對為什麼會發生這種情況感到困惑……您的任何建議將不勝感激!
在這種情況下,反斜杠字元是換行符,轉義文字換行符。
當您在一行中間放置一個反斜杠時,它正在轉義以下字元,例如
-DGMX_MPI=ON -DGMX_OPENMP=ON \ -DGMX_GPU=CUDA -DGMX_CUDA_TARGET_SM=60 \
the
\ -DGMX_GPU=CUDA
被讀取為以文字空間開頭的單個標記。因為它不以破折號開頭,cmake
所以將其解釋為源目錄而不是選項。要麼刪除這些多餘的反斜杠
-DGMX_MPI=ON -DGMX_OPENMP=ON -DGMX_GPU=CUDA -DGMX_CUDA_TARGET_SM=60 \
或按預期使用它們,即作為續行
-DGMX_MPI=ON -DGMX_OPENMP=ON \ -DGMX_GPU=CUDA -DGMX_CUDA_TARGET_SM=60 \
確保後面沒有尾隨字元
\