Сборка проекта libssh - целевой шаблон не содержит «%» - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь установить libssh-0.8.5 на Ubuntu 16.04, используя инструкции из файла install.readme.Я следую каждому шагу, как указано, но получаю ошибку после выполнения команды make для сборки проекта.Ошибка выглядит следующим образом:

[ 65%] Built target exec
tests/CMakeFiles/ssh_ping.dir/flags.make:8: *** target pattern contains no '%'.  Stop.
CMakeFiles/Makefile2:1696: recipe for target 'tests/CMakeFiles/ssh_ping.dir/all' failed
make[1 ]: *** [tests/CMakeFiles/ssh_ping.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

Image of Error

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

Файл flag.make выглядит следующим образом:

Flag.make file

Кажется, проблема связана свыделенная жирная линия.Кто-нибудь может увидеть, что мне не хватает?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Очевидно, ssh не был правильно установлен на вашей платформе, в то время как cmake полагается на него.Я немного удивлен, что cmake само по себе не выдало ошибку при генерации flag.make, но, поскольку я не использую cmake, я не знаю, нормальное ли это поведение или нет.

В любом случаекогда cmake попытался определить вашу версию OpenSSH, он сделал это, запустив ssh и получил сообщение об ошибке вместо требуемого номера версии.Это сообщение об ошибке вставлено в сгенерированный flag.make Makefile.Поскольку вторая строка этого сообщения об ошибке (я мог бы скопировать и вставить его здесь, если его не было на рисунке в вашем вопросе) имеет форму:

a: b: c

, make попытался интерпретировать его как правило статического шаблона , но поскольку оно не содержит % подстановочный знак, make вызывает синтаксическую ошибку.

Что произойдет, если вы попытаетесь запустить /usr/bin/ssh -V в командной строке?

0 голосов
/ 02 января 2019

На StackOverflow (и на большинстве других аналогичных сайтов), пожалуйста, вырезайте и вставляйте текст в свои вопросы и форматируйте их, используя соответствующие средства уценки, вместо того, чтобы прикреплять изображения, содержащие текст. Последние трудно читать, и мы не можем вставить их в наш ответ, чтобы показать, где что-то идет не так.

Вы не можете вставлять переводы строк в кавычки, в make-файлы. Make полностью ориентирован на строки и вообще не разбирает кавычки. Итак, чтобы сделать это:

FOO = "bar
biz"

не считается одной строкой, присваивающей переменной, содержащей символ новой строки, FOO. Вместо этого рассматриваются две строки, первая из которых присваивает значение "bar переменной FOO, а вторая - синтаксическую ошибку, поскольку make не может проанализировать строку baz" как допустимую команду.

...