Как мне заставить CMake найти OpenMP_ C, OpenMP_CXX, et c.? - PullRequest
1 голос
/ 08 февраля 2020

Я довольно новичок в работе с терминалом и пытаюсь использовать cmake для настройки сборки для проекта, который включает в себя публичные c маршруты транспортировки. Когда я пытаюсь сделать сборку, я получаю следующий ответ в терминале:

$ cmake ..
-- Could NOT find OpenMP_C (missing: OpenMP_C_FLAGS OpenMP_C_LIB_NAMES) 
-- Could NOT find OpenMP_CXX (missing: OpenMP_CXX_FLAGS OpenMP_CXX_LIB_NAMES) 
-- Could NOT find OpenMP (missing: OpenMP_C_FOUND OpenMP_CXX_FOUND) 
CMake Warning at CMakeLists.txt:33 (message):
  Configuring without OpenMP!


CMake Error at src/CMakeLists.txt:13 (add_subdirectory):
  The source directory

    /Users/ericbush/Desktop/the-one/toolkit/gtfs/pfaedle/src/cppgtfs

  does not contain a CMakeLists.txt file.


CMake Error at src/CMakeLists.txt:14 (add_subdirectory):
  The source directory

    /Users/ericbush/Desktop/the-one/toolkit/gtfs/pfaedle/src/configparser

  does not contain a CMakeLists.txt file.


-- Configuring incomplete, errors occurred!
See also "/Users/ericbush/Desktop/the-one/toolkit/gtfs/pfaedle/build/CMakeFiles/CMakeOutput.log".
See also "/Users/ericbush/Desktop/the-one/toolkit/gtfs/pfaedle/build/CMakeFiles/CMakeError.log".

Ниже приведен код, который я считаю соответствующим из файла CMakeLists.txt:

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

1 Ответ

0 голосов
/ 09 февраля 2020

Чтобы компилятор мог видеть OpenMP, вам может потребоваться установить следующие параметры в вашей команде cmake (для зависимостей, расположенных в /opt/local):

cmake .. -DOpenMP_C_FLAGS=-fopenmp=lomp -DOpenMP_CXX_FLAGS=-fopenmp=lomp -DOpenMP_C_LIB_NAMES="libomp" -DOpenMP_CXX_LIB_NAMES="libomp" -DOpenMP_libomp_LIBRARY="/opt/local/lib/libomp.dylib" -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp /opt/local/lib/libomp.dylib -I/opt/local/include" -DOpenMP_CXX_LIB_NAMES="libomp" -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp /opt/local/lib/libomp.dylib -I/opt/local/include"

Два отсутствующих CMakeLists.txt расположены в git подмодулях в src/ Чтобы загрузить подмодули, cd в каталог root phaedle и введите следующую команду:

git submodule update --init --recursive

Редактировать: это теперь исправлено в master.

...