cmake bootstrapping не находит ncurses - PullRequest
0 голосов
/ 24 сентября 2019

Я создаю cmake на RHEL с gcc и ncurses, размещенными в произвольном месте /path/to/gcc/and/ncurses, которое содержит стандартную структуру /usr, т.е.

/path/to/gcc/and/ncurses
    bin
    include
    include/ncurses
    lib
    lib64

Обе переменные CPATH и *LIBRARY_PATH являютсяуказывая на соответствующие каталоги.

Я не уверен, как отлаживать процесс.Подробный вывод bootstrap просто говорит:

-- Checking for curses support
-- Checking for curses support - Failed

Когда я в поиске curses в каталоге сборки, я нахожу несколько ссылок, особенно в Source/Checks/Curses-build/CMakeCache.txt

//Path to a library.
CURSES_CURSES_LIBRARY:FILEPATH=CURSES_CURSES_LIBRARY-NOTFOUND

//Path to a library.
CURSES_FORM_LIBRARY:FILEPATH=CURSES_FORM_LIBRARY-NOTFOUND

//Path to a file.
 CURSES_INCLUDE_PATH:PATH=/gpfs/panther/local/apps/dev/core/gcc/9.2.0/include/ncurses

//Path to a library.
CURSES_NCURSES_LIBRARY:FILEPATH=CURSES_NCURSES_LIBRARY-NOTFOUND

и в CMakeFiles/CMakeError.log:

Checking for curses support failed with the following output:
Change Dir: /path/to/build/Source/Checks/Curses-build

Этапы конфигурирования и сборки выполняются следующим образом:

${SRC_DIR}/configure \
    --prefix=${INSTALL_DIR} \
    --verbose \
    --parallel=16 \
    && make -j16 && make install

Это действительно кажется небольшим упущением, но я не мог воспроизвести его на аналогичной машине RHEL.были одинаковые сценарии сборки и cmake версии сборки нормально.

Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 24 сентября 2019

Правильно, мне удалось решить проблему с помощью проклятий с помощью параметров cmake.Оказывается, что программа bootstrap может принимать параметры cmake после --.Вот что я сделал:

${SRC_DIR}/configure \\
    --prefix=${INSTALL_DIR} \
    --verbose \
    --parallel=16 -- \
   -DBUILD_CursesDialog=ON \
   -DCURSES_LIBRARY=${COMPILER_PREFIX}/lib/libncurses.so.6 \
   -DCURSES_INCLUDE_PATH=${COMPILER_PREFIX}/include/ncurses \
   && make -j16 && make install

, где префикс $COMPILER_PREFIX указывал на /path/to/gcc/and/ncurses.Поступив таким образом, я лучше увидел, какая часть не работает.Прежде, чем я пытался перемещаться по неясной (для меня!) Структуре каталогов сборки.

...