Добавление swig2.0 в usr / bin / для запуска CMake - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь запустить CMake для своей программы, но продолжаю получать сообщения об ошибках, указывающие на отсутствие нужной версии swig в моем каталоге usr/bin.

Вот ошибки, которые я получаю при запуске:

home/program/build_program/Debug$ cmake .. -DCMAKE_BUILD_TYPE=Debug

CMake Error в /home/my_name/tools/cmake/share/cmake-3.15/Modules/FindSWIG. cmake: 39 (сообщение):
Команда «/usr/bin/swig2.0 -swiglib» завершилась неудачно с выводом:

Стек вызовов (самый последний вызов первый):
CMakeLists.txt: 245 (FIND_PACKAGE)

Ошибка CMake в CMakeLists.txt: 246 (ВКЛЮЧИТЬ):
ВКЛЮЧЕНА с неправильным количеством аргументов. include () принимает только один файл.

Ошибка CMake в CMakeLists.txt: 265 (SWIG_ADD_LIBRARY): неизвестная команда CMake "SWIG_ADD_LIBRARY".

- Конфигурирование неполное, возникли ошибки! Смотрите также "/home/program/build_program/CMakeFiles/CMakeOutput.log".

Это то, что я вижу в usr/bin:

usr/bin$ ls | grep swig
ccache-swig
ccache-swig3.0
swig
swig3.0

И это строки 245 , 246 и 265 в моем CMakeLists.txt:

(245) FIND_PACKAGE (ОБЯЗАТЕЛЬНО SWIG)

(246) ВКЛЮЧИТЬ ($ {SWIG_USE_FILE})

(265) SWIG_ADD_LIBRARY (ОБЩИЙ ЯЗЫК ТИПА pymcell python ИСТОЧНИКИ src / pymcell.i $ {SOURCE_FILES} $ {BISON_dynGeomParser_OUTPUTS} $ {FLEX_dynGeomScanner_OUTPUTS * 10 *

10 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * вот для получения swig2.0 в usr/bin, но я не уверен, как это сделать.

Что я пробовал:

Я установил swig2.0.12, но нет файла с именем swig2.0, и даже если он был, я не уверен, как правильно переместить это в usr/bin.

Я немного новичок, так что я надеюсь, что это не слишком глупый вопрос.

Я использую Debian 9 и CMake 3.15.4.

1 Ответ

1 голос
/ 17 января 2020

Превращение моего комментария в ответ:

Модуль FindSWIG использует переменную SWIG_EXECUTABLE в качестве подсказки для местоположения / версии SWIG для использования. Когда исполняемый файл SWIG найден, версия получается и CMake кэшируется . Следовательно, последующее использование CMake, вероятно, будет ожидать такой же версии SWIG.

Если вы используете CMake с несколькими версиями SWIG или обновляете путь и / или версию SWIG, вы можете установить эту переменную SWIG_EXECUTABLE, чтобы указать CMake, где искать.

set(SWIG_EXECUTABLE /usr/bin/swig3.0)
find_package(SWIG REQUIRED)

Когда обновляя версию SWIG или местоположение на вашем компьютере, вы хотите очистить любые переменные cached SWIG в CMake, чтобы можно было найти самую последнюю (или правильную) версию. Сделайте это, очистив кэш CMake или удалив файл CMakeCache.txt и повторно запустив CMake.

...