Я пытаюсь построить Sandia Lab’s Дакота Инструментарий под Kubuntu 14.04 с использованием следующего скрипта cmake:
cmake \
-D CMAKE_INSTALL_PREFIX:PATH=/usr/local/dakota \
-D CMAKE_BUILD_TYPE:STRING=Release \
-D DAKOTA_HAVE_MPI:BOOL=TRUE \
-D MPI_INCLUDE_PATH="/usr/lib/openmpi/include" \
-D MPI_LIBRARY="/usr/lib/openmpi/lib" \
-D CMAKE_CXX_COMPILER:FILEPATH="/usr/bin/mpicxx" \
-D HAVE_X_GRAPHICS:BOOL=FALSE \
-D Trilinos_DIR:STRING="=/usr/local/trilinos/lib/cmake/Trilinos" \
-D BLAS_LIBS:STRING="/usr/lib/libcblas.so.3" \
-D LAPACK_LIBS:STRING="/usr/lib/lapack.so.3" \
-D Boost_INCLUDE_DIR:STRING="/usr/local/boost/source/boost_1_57_0" \
/usr/local/dakota/dakota-6.1.0.src
Однако настройка завершается неудачно с предупреждением
CMake Warning at /usr/local/trilinos/TrilinosConfig.cmake:44 (MESSAGE):
TrilinosConfig.cmake has moved. It now exists at a location under the
installation prefix where the find_package command looks by default (<prefix>/lib/cmake/Trilinos). This compatibility file exists at the old location (<prefix>/include) to present this message and load the file from its new location. The find_package() call that loaded this file did so because its cached result variable, Trilinos_DIR, is set to
/usr/local/trilinos
I'm locally setting Trilinos_DIR to
/usr/local/lib/cmake/Trilinos
and loading TrilinosConfig.cmake from its new location. One may suppress
this warning by setting the above value in the cache. However, the
application needs modification permanently fix the issue. The
find_package() call that loaded this file may have the form
find_package(Trilinos REQUIRED PATHS ${Trilinos_PATH}/include)
Change it to the form
set(CMAKE_PREFIX_PATH ${Trilinos_PATH} ${CMAKE_PREFIX_PATH})
find_package(Trilinos REQUIRED)
to find TrilinosConfig.cmake in its new location in future builds while
still honoring the Trilinos_PATH option for this application.
и ошибка
CMake Error at /usr/local/trilinos/TrilinosConfig.cmake:66 (INCLUDE):
include could not find load file:
/usr/local/lib/cmake/Trilinos/TrilinosConfig.cmake
потому что нет трилино под /usr/local/lib/cmake/Trilinos
, К сожалению, я не достаточно опытен в использовании cmake, чтобы исправить это, хотя кажется, что решения уже предложены. Может ли кто-нибудь взять меня через процесс?
В дополнение к проблеме Trilinos, cmake также не может найти несколько (заголовочных) файлов, а именно
Looking for pthread_create in pthreads - not found
Looking for include file cxxabi.h - not found
Looking for include file cxxabi.h - not found
Looking for pdb.h - not found
и я не уверен, если это отдельная проблема (и если так, как это исправить). Любая помощь будет оценена.
Соответствующие версии программного обеспечения: cmake 2.8.12.2, boost 1.57.0, openmpi 1.6.5 и trilinos 11.14.1.
Попробуйте следующие 2 варианта.
Или…
Изменить ваш вызов cmake, а именно удалить
-D Trilinos_DIR: STRING = «= / usr / local / trilinos / lib / cmake / Trilinos» \
Или же…
Измените ваш вызов cmake, а именно поместите правильный каталог, где вы говорите
-D Trilinos_DIR: STRING = «= / usr / local / trilinos / lib / cmake / Trilinos» \
Что касается второй части вашего вопроса, сначала проверьте, действительно ли тот факт, что эти заголовки не могут быть найдены, влияет на вашу последующую сборку.
Теперь я вижу, что у вас есть опечатка в командной строке, фальшивка =
, Попробуй с
-D Trilinos_DIR:STRING="/usr/local/trilinos/lib/cmake/Trilinos"
или же
-D Trilinos_DIR:STRING="/usr/local/trilinos"