2017-02-14 9 views
0

Я пытаюсь установить пакет трилинос, используя предложенный маршрут cmake. У меня нет опыта работы с cmake, но есть образец bash, который я нашел. Когда я пытаюсь выполнить этот скрипт, я получаю сообщение об ошибкеcmake думает, что переменная - это каталог

Ошибка CMake: Исходный каталог «/ home/USER/code/packages/trilinos_build/MPI_EXEC: FILEPATH =/usr/bin/pkg/mpiexec» не существует. Укажите --help для использования или нажмите кнопку справки в графическом интерфейсе CMake.

Я проверил документ cmake и я уверен, что синтаксис верен, что мне не хватает?

#!/bin/bash 

# Set this to the root of your Trilinos source directory. 
TRILINOS_PATH=../trilinos_source 
TRILINOS_BUILD_PATH=./ 

# 
# You can invoke this shell script with additional command-line 
# arguments. They will be passed directly to CMake. 
# 
[email protected] 

# 
# Each invocation of CMake caches the values of build options in a 
# CMakeCache.txt file. If you run CMake again without deleting the 
# CMakeCache.txt file, CMake won't notice any build options that have 
# changed, because it found their original values in the cache file. 
# Deleting the CMakeCache.txt file before invoking CMake will insure 
# that CMake learns about any build options you may have changed. 
# Experience will teach you when you may omit this step. 
# 
rm -f CMakeCache.txt 

# 
# Enable all primary stable Trilinos packages. 
# 
cmake \ 
    -D CMAKE_INSTALL_PREFIX:FILEPATH="${TRILINOS_BUILD_PATH}/mpi" \ 
    -D CMAKE_BUILD_TYPE:STRING=RELEASE \ 
    -D Trilinos_ENABLE_TESTS:BOOL=OFF \ 
    -D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \ 
    -D TPL_ENABLE_MPI:BOOL=ON \ 
    -D MPI_EXEC:FILEPATH="/usr/bin/pkg/mpiexec" \ 


$EXTRA_ARGS \ 
$TRILINOS_PATH 
+0

Я не уверен, но кажется, что '$ EXTRA_ARGS' и более новые параметры не передаются в cmake: они ограничены предыдущими параметрами несколькими строками, а '\' в конце строки обеспечивает продолжение только на следующем линия. Кстати, вы можете отлаживать вызов 'cmake' путем прямого вызова его с соответствующими параметрами вместо использования скрипта. – Tsyvarev

+0

Это все, что было, слишком много пробелов. Благодарю. – roro

ответ

0

У меня есть подобные проблемы с CMake, это из-за белым входит между последней строкой и $ extra_args \. просто удалите пустые строки, и ошибка исчезнет.

поэтому файл должен быть таким:

#!/bin/bash 

# Set this to the root of your Trilinos source directory. 
TRILINOS_PATH=../trilinos_source 
TRILINOS_BUILD_PATH=./ 

# 
# You can invoke this shell script with additional command-line 
# arguments. They will be passed directly to CMake. 
# 
[email protected] 

# 
# Each invocation of CMake caches the values of build options in a 
# CMakeCache.txt file. If you run CMake again without deleting the 
# CMakeCache.txt file, CMake won't notice any build options that have 
# changed, because it found their original values in the cache file. 
# Deleting the CMakeCache.txt file before invoking CMake will insure 
# that CMake learns about any build options you may have changed. 
# Experience will teach you when you may omit this step. 
# 
rm -f CMakeCache.txt 

# 
# Enable all primary stable Trilinos packages. 
# 
cmake \ 
    -D CMAKE_INSTALL_PREFIX:FILEPATH="${TRILINOS_BUILD_PATH}/mpi" \ 
    -D CMAKE_BUILD_TYPE:STRING=RELEASE \ 
    -D Trilinos_ENABLE_TESTS:BOOL=OFF \ 
    -D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \ 
    -D TPL_ENABLE_MPI:BOOL=ON \ 
    -D MPI_EXEC:FILEPATH="/usr/bin/pkg/mpiexec" \ 
$EXTRA_ARGS \ 
$TRILINOS_PATH 

Кроме того, если вы прокомментируете любую линию # между опциями -D та же ошибка покажет. после cmake \ все строки должны быть непрерывными.

надеюсь, что это поможет!