Make ошибка в синтаксисе команды

you must remove the spacing around the slashes or argument parsing believes that there are more than 1 argument (and you can also forget about creating $(OBJDIR) because -p option creates all non-existing dirs to the target dir:

Unix/Linux compliant should be:

objdir:
    mkdir -p $(OBJDIR)/S4k
    mkdir -p $(OBJDIR)/modules

Note that when using Windows mkdir command, the -p option should be dropped (windows version does that by default and that option isn’t recognized). Given the message you’re getting, you’re probably running the windows version so it should be:

objdir:
    mkdir $(OBJDIR)S4k
    mkdir $(OBJDIR)modules

(slashes are not accepted by Windows mkdir command so $(OBJDIR) should be built with backslashes as well)

slashes are used for command switches in basic commands like mkdir, or else you have to quote the paths

objdir:
    mkdir "$(OBJDIR)/S4k"
    mkdir "$(OBJDIR)/modules"

(as you see it’s rather difficult to have a portable makefile from Linux to Windows unless you’re running it within MSYS shell where mkdir is the MSYS one, and keep in mind that there are native & MSYS versions of the make command too, I got caught once: How to force make to use bash as a shell on Windows/MSYS2)

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

Иногда ошибки make не являются фатальными, особенно при наличии префикса - в строке рецепта или параметра командной строки -k .К фатальным ошибкам добавляется строка *** .

Все сообщения об ошибках либо имеют префикс с именем программы (обычно ‘make‘) или, если ошибка обнаружена в make-файле, имя файла и номер строки, содержащей проблему.

[ foo ] Ошибка NN
[foo] signal description

Эти ошибки на самом деле не make ошибок вообще. make программа, запущенная как часть рецепта, вернула код ошибки, отличный от 0 (‘Error NN‘), что make интерпретирует как сбой, или он завершился каким-то другим ненормальным образом (с сигналом какого-то типа). См. Ошибки в рецептах .

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

отсутствующий разделитель.Остановитесь.
отсутствует разделитель (вы имели в виду TAB вместо 8 пробелов?).Стоп.

Это означает, что программа make ничего не могла понять о только что прочитанной строке файла makefile. GNU make ищет различные разделители ( : , = , символы префикса рецепта и т. д.), чтобы указать, какую строку он анализирует. Это сообщение означает, что не удалось найти допустимый.

Одна из наиболее частых причин появления этого сообщения заключается в том, что вы (или, возможно, ваш очень полезный редактор, как в случае со многими редакторами MS-Windows) попытались сделать отступ в строках рецептов пробелами вместо символа табуляции. В этом случае make будет использовать вторую форму ошибки выше. Помните, что каждая строка в рецепте должна начинаться с символа табуляции (если вы не установили .RECIPEPREFIX ; см. Специальные переменные ). Восемь пробелов не в счет. См . Синтаксис правила .

рецепт начинается до первой цели.Стоп.
недостающее правило перед рецептом.Остановитесь.

Это означает, что первая вещь в make-файле кажется частью рецепта: он начинается с символа префикса рецепта и не выглядит допустимой директивой make (например, назначением переменной). Рецепты всегда должны быть связаны с целью.

Вторая форма создается, если в строке стоит точка с запятой в качестве первого непробельного символа; make интерпретирует это как то, что вы пропустили раздел правила «target: prerequisite». См . Синтаксис правила .

Нет правила делать цель ` xxx ‘.
Нет правила для создания цели ` xxx ‘, необходимого yyy ‘.

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

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

Не указаны цели и не найден makefile.Остановить.
Нет целей.Остановка.

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

Makefile ` xxx ‘не найден.
Включенный make-файл ` xxx ‘не найден.

Не найден makefile,указанный в командной строке (первая форма)или включенный (вторая форма).

предупреждение: переопределение рецепта для цели ` xxx
предупреждение: игнорирование старого рецепта для цели ` xxx

GNU make позволяет указывать только один рецепт для каждой цели (за исключением правил с двойным двоеточием). Если вы даете рецепт для цели, которая уже была определена как имеющая, выдается это предупреждение, и второй рецепт перезапишет первый. См. Несколько правил для одной цели .

Круговая зависимость xxx <- yyy удалена.

Это означает, что программа make обнаружила петлю в графе зависимостей: после отслеживания предварительного условия yyy цели xxx и его предварительных условий и т. Д. Один из них снова зависел от xxx .

Рекурсивная переменная ` xxx ‘ссылается на себя (в конце концов). Останавливаться.

Это означает, что вы определили обычную (рекурсивную) переменную make xxx , которая при расширении будет ссылаться на себя ( xxx ). Это не разрешено; либо используйте просто развернутые переменные (‘:=‘ или же ‘::=‘) или используйте оператор добавления (‘+=‘). См. Как использовать переменные .

Непрерванная переменная ссылка.Стоп.

Это означает,что вы забыли поставить правильную закрывающую скобку или круглую скобку в ссылке на переменную или функцию.

недостаточно аргументов для функции ` xxx ‘. Останавливаться.

Это означает, что вы не указали необходимое количество аргументов для этой функции. См. документацию функции для описания ее аргументов. См. Функции для преобразования текста .

отсутствующий целевой паттерн.Остановитесь.
несколько моделей целей.Стоп.
целевой шаблон не содержит `%’.Остановитесь.
смешанные неявные и статические правила паттерна.Стоп.

Эти ошибки генерируются для неправильно сформированных правил статического шаблона (см. Синтаксис правил статического шаблона ). Первое означает, что часть правила с целевым шаблоном пуста; второе означает, что в части целевого шаблона есть несколько символов шаблона ( % );третий означает, что в части целевого шаблона нет символов шаблона; а четвертое означает, что все три части правила статического шаблона содержат символы шаблона ( % ) — первая часть не должна содержать символы шаблона.

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

предупреждение:принудительное -jN в submake:отключение режима сервера заданий.

Это предупреждение и следующее генерируются, если программа make обнаруживает ошибочные состояния, связанные с параллельной обработкой в ​​системах, в которых make обмениваться данными подкоманды (см. Параметры связи с подкомпоновкой make . Это предупреждение генерируется, если рекурсивный вызов процесса make вынужден иметь ‘-jN‘ в своем списке аргументов (где N больше единицы). Это может произойти, например, если вы установите для переменной среды MAKE значение ‘make -j2‘. В этом случае sub- make не взаимодействует с другими процессами make и просто будет притворяться, что у него есть две собственные задачи.

warning:jobserver unavailable:using -j1.Добавьте `+’ к родительскому правилу make.

Чтобы процессы make могли взаимодействовать, родительский процесс передает информацию дочернему процессу. Поскольку это может привести к проблемам, если дочерний процесс на самом деле не является make , родительский процесс будет делать это только в том случае, если он думает, что дочерний процесс является make . Для определения этого родитель использует обычные алгоритмы (см. Как работает переменная MAKE ). Если make-файл сконструирован таким образом, что родитель не знает, что дочерний процесс является make -процессом, то дочерний процесс получит только часть необходимой информации. В этом случае дочерний элемент сгенерирует это предупреждающее сообщение и последовательно продолжит свою сборку.

предупреждение:игнорирование предварительных условий при определении суффиксного правила

Согласно POSIX правило суффикса не может содержать предварительных условий. Если правило, которое может быть суффиксным правилом, имеет предварительные условия, оно интерпретируется как простое явное правило с нечетным целевым именем. Это требование выполняется, когда включен POSIX-совместимый режим ( определена цель .POSIX ). В версиях GNU make до 4.3 не выводилось никаких предупреждений и создавалось суффиксное правило, однако все предварительные требования игнорировались и не являлись частью суффиксного правила. Начиная с GNU make 4.3 поведение остается таким же, и, кроме того, генерируется это предупреждение. В будущей версии POSIX-совместимое поведение будет единственным поведением: ни одно правило с предварительным условием не может быть суффиксным правилом, и это предупреждение будет удалено.

Иногда стандартная последовательность для компиляции программы не работает. Она начинает выводить различные ошибки и не компилирует программу. Что в таком случае делать? В этой статье описано как избавиться от множества часто встречающихся ошибок.


Внимание: В этой статье подразумевается, что у вас уже есть некоторое количество знаний в области работы с командной строкой и вы знаете как работать с менеджером пакетов вашего дистрибутива.

Мы можем разделить ошибки на три категории:

  • Ошибки при выполнении команды ./configure

  • Ошибки при выполнении команды make

  • Ошибки при выполнении команды make install

Очевидно, что ошибки при выполнении команды ./configure, возникают во время выполнения скрипта конфигурации, ошибки при выполнении команды make возникают во время выполнения команды make, а ошибки при выполнении команды make install, соответственно, возникают при выполнении команды make install. Далее будет представлен лист типичных ошибок и способ их решения, разделенный на эти три категории.


Ошибки при выполнении команды ./configure

Следующий список содержит некоторые общие ошибки, которые может выдать каманда ./configure. Ошибки отсортированы по частоте возникновения. Сначала наиболее часто встречающиеся. Вещи между ( и ) являются опциональными, они могут не появлятся. OR, выделенное жирным курсивом означает, что несколько ошибок имеют одно решение. Текст между < и > показывает тип строки, которая должна появиться в этом месте.

  1. (configure:) (error:) <somename> (<someversion> (or higher)) not found. (Please check your installation!) OR checking for <somename>… (configure:) (error:) not found. OR (configure:) (error:) <somename> (<someversion> (or newer)) is required to build <package-you’re-trying-to-compile>

    • Это обычно означает что -dev или -devel версия пакета ,который называется <somename> не установлена у вас на компьютере. Используйте менеджер пакетов вашего дистрибутива (или любой другой способ найти и установить пакет), чтобы найти пакет <somename> и установить его, если это возможно, -dev или -devel версию. Если -dev или -devel версия уже установлена, или её не сущечтвует, посмотрете на версию уже установленной. Она достаточно новая? Если она ниже, чем <someversion>, попробуйте обновить пакет. Если обновить пакет не представляется возможным, вы можете попробовать скомпилировать более мтарую версию программы. Более старые версии обычно используют более старые версии библиотек и программ, необходимых для компиляции.

  2. (configure:) (error:) cannot find header (file) <somename>.h OR (configure:) (error:) (header) (file) <somename>.h missing! OR <similar>

    • Конфигурационный скрипт не может найти .h файл, необходимый для компиляции. Эта ошибка похожа на предыдущую, в которой необходимо установить -dev или -devel версию пакета. Однако, обычно не понятно какой пакет нужно установить для решения этой проблемы, так как <somename> может быть очень общим названием. Попробуйте поискать в интернетет <somename>.h, чтобы узнать в каком пакете этот файл находится, а затем установите этот пакет (и его -dev или -devel версия, если это возможно) с помощью менеджера пакетов вашего дистрибутива.

  3. (configure:) (error:) no acceptable cc found in <somedirectories>

    • Вы используете для установки компилятор gcc, А переменная окружения CC отсутствует или не установлена. Убедитесь, что пакет gcc установлен, используя менеджер пакетов вашего дистрибутива. Если этот пакет не установлен, установите его. Если он установлен, попробуйте выполнить следующую команду:

      [rechosen@localhost ~]$ export CC=»/usr/bin/cc»

      Если это помогло, вы можете добавить эту команду в /etc/profile (это файл, содержащий команды, которые выполняются когда пользователь входит в систему) и тогда вам не придется набирать её снова.

  4. (configure:) (error:) C++ preprocessor «/lib/cpp» fails sanity check

    • Ваш пакет g++ отсутствует или поврежден. Используйте Используйте менеджер пакетов вашего дистрибутива (или любой другой способ найти и установить пакет), чтобы найти пакет g++ и установить его. Не забудьте, что в некоторых дистрибутивах этот пакет называется не g++. Fedora, например, использует название gcc-c++ в соем репозитарии yum. Если вы не можете найти g++, попробуйте поискать c++, cpp или gcc.

  5. (configure:) (error:) C++ preprocessor «CC (-E)» fails sanity check

    • Эта ошибка вызвана странным «багом» в некоторых версиях библиотеки libtool, которая заставляет конфигурационный скрипт проверять все компиляторы поддерживающиеся libtool. Наиболее простое решение — установить g++.


Ошибки при выполнении команды make

Так как ошибки при выполнении команды make обычно очень специфичны, я дам список основных вещей, которые могут помочь:

  • Если вы компилируете программу с использованием gcc 4 (используйте gcc -dumpversion чтобы это выяснить), попробуйте использовать более старые версии компилятора. Сначала убедитесь, что у вас установлена более старая версия. Обычно это можно узнать, использовав следующую команду:

    [rechosen@localhost ~]$ ls /usr/bin/gcc*

    Если она вернет что-то вроде этого:

    /usr/bin/gcc /usr/bin/gcc32

    То можете использовать команды gcc32, чтобы скомпилировать программу в более ранними версиями gcc. Если команда не вернет подобной строки, то используя менеджер пакетов вашего дистрибутива, найдите и установите более ранние версии gcc (обычно они называются compat-gcc или gcc-<versionnumber>). После установки, вам должна быть доступна альтернативная версия gcc. Её можно найти используя команду ls. Заставить команды ./configure, make и make install использовать более старую версию gcc можно так:

    [rechosen@localhost ~]$ CC=»/usr/bin/gcc32″ ./configure
    [rechosen@localhost ~]$ CC=»/usr/bin/gcc32″ make
    [rechosen@localhost ~]$ CC=»/usr/bin/gcc32″ make install

    Конечно путь /usr/bin/gcc32 надо заменить на тот, по которому у вас находится альтернативная версия gcc.

  • Иногда ошибки могут вызваны простым «багом» программы. Попробуйте скачать последнюю версию программы (используя её cvs, svn или другой репозитарий, или скачав последний снимок) и скомпилируйте её, возможно эта ошибка уже исправлена.

  • Ошибка при выполнении комадны make может быть также вызвана неправильной версией необходимой библиотеки или программы. Эта проблема часто встречается для очень новых или очень старых пакетов. Проверьте зависимости пакета (они обчно написаны на сайте программы) и сравните номера версий с версиями, установленными у вас на компьютере (их обчно можно посмотреть, используя менеджер пакетов вашего дистрибутива). Если номер версии в вашей системе больше того, которые написан на сайте, возможно вы пытаетесь скомпилировать очень старый пакет. Если вам дейсвительно необходимо его скомпилировать, попробуйте установить более старые версии зависимых пакетов.Как бы то небыло, обычно лучше поискать другой способ установки этого пакета или поискать альтернативу. Если номер версии в системе меньше, чем на сайте, вы можете попробовать обновить соответствующий пакет.Вы можетепопробовать обновить требуемую библиотеку или скомпилировать более старую весию программы.Так же проверьте, может уже есть этот пакет, скомпилированный для авшего дистрибутива. Его установка, обычно, проще, чем исправление ошибок компиляции.

  • Другая вещь, которую стоит попробовать — это поиск специфической ошибки в интернете. Если вы не нашли ничего полезного, попробуйте убрать такие вещи, как номер строки (он может измениться с новой версией), номер версии (его можно заменить звездочкой, если он содержится в названии программы) и специальные символы, такие как кавычки, так как они влияют на поисковый сервис. Обычно можно найти много информации в листе рассылок. Иногда выходит патч, который исправляет ошибки в исходном коде. Его можно применить слудеющим образом:

    [rechosen@localhost ~]$ patch -Np1 <patchfile>

    Не забудьте: чтобы применить патч, текущей должна быть директория с исходными текстами.


Ошибки при выполнении команды make install

Эти ошибки обычно легко понять, но я все равно про них напишу. Есть два наиболее частых случая, почему команда make install возвращает ошибку:

  • У вас нет прав пользователя root. Попробуйте выполнить команду make install, используя команду sudo, или станеть пользователем root, используя команду su. Команда sudo применяется следующим образом:

    [rechosen@localhost ~]$ sudo make install

    Она спросит пароль; обычно используется собственный пароль или пароль пользователя root. Вы можете испльзовать команду su, чтобы стать польpователем root:

    [rechosen@localhost ~]$ su

    Эта команда тоже спросит пароль, но в данном случае наобходим именно пароль пользователя root. После того, как вы стали пользователем root, просто выполните команду make install.

  • Пакет, который вы только что скомпилировали не имеет команды установки. В этом случае вам надо скопировать скомпилированный бинарный файл в директорию bin вручную. Если вы выполните команду ls в директории исходного кода, исполняемый файл должен быть светло зеленого цвета. Его надо скопировать в /usr/bin (или, если хотите, в /usr/local/bin) следующей командой:

    [rechosen@localhost ~]$ cp <executablefile> /usr/bin

    Я согласен, что это не всегда самый простой способ, но иногда разработчики не тратят время на создание команды установки. Мы не должны на них сердиться за это: ведь прежде всего они делают для нас полезную программу.

Другие проблемы

Вот список некоторых других возможных проблем и их решения:

  • Все проходит хорошо, но когда я набираю имя программы, которую только что установил, bash говорить, что не может её найти. Это обычно происходит из-за того, что make install устанавливает все в /usr/local или in /opt/<packagename>. Посмотрите на вывод команды make install: куда скопированы файлы? Попробуйте добвавить эту директорию в переменную PATH (следующий пример приведен для пакета, установленного в /usr/local):

    [rechosen@localhost ~]$ export PATH=»$PATH:/usr/local/bin»

    Вам надо заменить /usr/local/bin на директорию, в которой установлены исполняемые файлы вашего пакета. Если это помогло, добавьте эту строку в /etc/profile, чтобы вам не пришлось набирать её каждый раз. Кстати, вы можете контролировать место, куда установится пакет, указав следующую опцию, когда запускаете конфигурационный скрипт:

    [rechosen@localhost ~]$ ./configure —prefix=/usr

    Измените /usr на директорию, в которую хотите установить пакет. Не забудьте, что вы устанавливаете только префикс; бинарные файлы установятся в свою поддиректорию, библиотеки в свою, заголовочные файлы в свою и т.д. Например при использовании указанного префикса, бинарные файлы будут установлены в /usr/bin.

  • Я хочу установить очень старую версию пакета, но я не могу найти исходный код в интернете. У вас еще остается маленький шанс. Попробуйте найти rpm файл пакета той версии, которую вы хотите и скачайте соответствующий src rpm файл. Распаковать его можно следующим образом:

    [rechosen@localhost ~]$ rpm2cpio <pmfile> | cpio -idv

    Теперь можно использовать исходный код, извлеченный из rpm файла.

Финальные слова

Это учебное пособие еще не закончено. Я планирую обновлять его, используя решения проблем, полученные от других пользователей. Поэтому я прошу вас комментировать эту статью и говорить, чтобы вы еще хотели увидеть в ней. Помните, что эта статья об основных ошибках. Не спрашивайте как скомпилировать определенную версию определенной программы. В любом случае, я надеюсь эта статья будет полезна для вас. Спасибо за прочтение и удачи в сложной, но увлекательной вещи, которая называется компиляция!

Источник

вы должны удалить интервал между косой чертой или синтаксический анализ аргументов считает, что существует более одного аргумента (и вы также можете забыть о создании $(OBJDIR), потому что опция -p создает все несуществующие каталоги в целевой каталог:

Совместимость с Unix / Linux должна быть:

objdir:
    mkdir -p $(OBJDIR)/S4k
    mkdir -p $(OBJDIR)/modules

Обратите внимание, что при использовании команды Windows mkdir параметр -p должен быть удален (версия Windows делает это по умолчанию, и этот параметр не распознается). Учитывая сообщение, которое вы получаете, вы, вероятно, используете версию для Windows, поэтому она должна быть:

objdir:
    mkdir $(OBJDIR)S4k
    mkdir $(OBJDIR)modules

(косые черты нет принимаются командой Windows mkdir, поэтому $(OBJDIR) также должен быть построен с обратными косыми чертами)

косые черты используются для командных переключателей в основных командах, таких как mkdir, иначе вы должны указать пути

objdir:
    mkdir "$(OBJDIR)/S4k"
    mkdir "$(OBJDIR)/modules"

(как вы видите, довольно сложно иметь переносимый make-файл из Linux в Windows, если вы не запускаете его в оболочке MSYS, где mkdir является MSYS, и имейте в виду, что есть собственные версии и версии MSYS команды make, я попался один раз: Как заставить make использовать bash в качестве оболочки в Windows / MSYS2)

У меня была точно такая же проблема — при проверке FFMPEG в Windows, но с использованием git.

После запуска configure и при попытке бежать make Я получил ту же строку:

  common.mak:139: *** missing separator.  Stop.

Как подсказывает @MadScientist, Makefiles особенно суетливы не только в отношении табуляции (t), но и в выборе конца строки (LF или CRLF).

Это до GNU make команда, которая должна их запустить — которая, кажется, уважает только LF.

Так что версия *nix, такая как эта, будет работать:

И вот тот же файл под Windows, который не будет работать:

(Еще одна дешевая вещь — это то, что он также больше с двойными байтами в конце каждой строки!)

Суть в том, что вам, возможно, придется переформатировать файлы — возможно, с помощью dos2unix команда.

Это все равно будет иметь место, даже если не клонировать напрямую из git, а вместо этого загрузить tar/zip, который сам был создан из клона git. Конец строк будет сохранен.

Или, если вы используете Git (прямо как я), вы должны указать ему, как обрабатывать символы конца строки. Когда это проверяет / клонирует и когда это фиксирует.

Вот полное описание того, что это значит здесь: http://adaptivepatchwork.com/2012/03/01/mind-the-end-of-your-line/

И как это можно настроить (для старой версии git) через [core].eol установка.

Это также очевидно в Windows, когда при запуске установщика (например, http://git-scm.com/downloads) вы получаете такой диалог:

Выбор последней опции «оформить как есть, зафиксировать как есть» исправил это для меня. Возможно, не самый принципиальный способ, но он заставил сохранить окончания LF.

Перечень сообщений

— A —

— B —

— C —

— D —

— E —

— F —

— G —

— H —

— I —

— L —

— M —

— N —

— O —

— P —

— R —

— S —

— T —
— U —
— V —
— W —

Перечень сообщений

‘)’ missing in macro invocation in command команда

Фатальная ошибка утилиты MAKE

(в вызове макрокоманды в команде команда пропущена ‘)’)

В вызове макрокоманды требуется левая скобка.

) expected

Сообщение об ошибке этапа компиляции

(требуется ))

В конце списка параметров ожидается правая круглая скобка.

( expected

Сообщение об ошибке этапа компиляции

(требуется ()

Перед списком параметров ожидается левая круглая скобка.

, expected

Сообщение об ошибке этапа компиляции

(требуется ,)

В списке объявлений, инициализации или параметров ожидается запятая.

: expected alter private/protected/publlc

Сообщение об ошибке этапа компиляции

(требуется : после private/protected/public)

При использовании резервированных слов private/ protected/public для того, чтобы начать соответствующий раздел класса С++, за ними должно следовать двоеточие.

< expected

Сообщение об ошибке этапа компиляции

(требуется <)

За < не следует ключевое слово template. Каждое описание

шаблона должно включать в себя формальные параметры шаблона, заключенные в <>, за которыми непосредственно следует ключевое слово template.

@ seen, expecten a response-files name

Ошибка TLIB

(обнаружено @, предполагается имя командного файла)

Непосредственно после @ не задан командный файл утилиты.

{ expected

Сообщение об ошибке этапа компиляции

(требуется {)

В качестве начала блока или инициализации ожидается левая

фигурная скобка.

} expected

Сообщение об ошибке этапа компиляции

(требуется })

В конце блока или инициализации ожидается правая фигурная

скобка.

16-bit segments not supported in module модуль

Сообщение компоновщика об ошибке

(16-разрядные сегменты в данном модуле не поддерживаются)

16-разрядные сегменте не поддерживаются в 32-разрядных приложениях. Возможно вы компилируете свое 32-разрядное приложение

16-разрядным компилятором.

286/287 instructions not enabled

Cообщение об ошибке этапа компиляции

(Команды 286/287 не разрешены)

Чтобы разрешить использование команд 286/287, используйте

параметр командной строки компилятора -2 или параметр 80286 диалогового окна Options Compiler Code Generation (Параметры Компилятор Генерация кода). Учтите, что полученный при этом код не может использоваться на машинах с процессорами 8086 или 8088.

32-record encountered

Сообщение об ошибке утилиты TLINK

(обнаружена 32-разрядная запись)

Обнаружен объектный файл, содержащий 32-битовые записи

80386, а параметр /3 не используется.

— A —

Abnormal program termination

Сообщение об ошибке этапа выполнения

(аварийное завершение программы)

Данное сообщение может выводиться, если для выполнения программы не может быть выделено достаточного количества памяти. Вызов Abort также приводит к появлению данного сообщения.

Access can only be changed to public or protected

Сообщение об ошибке этапа компиляции

(тип доступа может быть изменен только на public или

protected)

Производный класс С++ может модифицировать права доступа

члена базового класса, но только на public или protected. Элемент

базового класса нельзя сделать private.

Added file имя_файла does not begin correctly, ignored

Предупреждение утилиты TLIB

(некорректно начинается добавляемый файл имя_файла, поэтому

он игнорируется)

Библиотекарь определил, что форма добавляемого к объектному

файлу модуля некорректна, поэтому он не пытается добавить его к

библиотеке. Библиотека тем не менее создается.

Address of overloaded function функция doesn’t match тип

Сообщение об ошибке этапа компиляции

(адрес переопределяемой функции не соответствует типу)

Переменной или параметру присваивается адрес переопределяемой функции (или выполняется инициализация переменной с использованием данного адреса), а тип переменной или параметра не совпадает с типом переопределяемой функции с заданным именем.

модуль isAlready in LIB, not changed

Предупреждение утилиты TLIB

(модуль уже находится в библиотеке и не изменятся)

Для библиотеки была попытка выполнить действие +. но объект

с таким именем уже есть в библиотеке. Если требуется обновление

модуля, то действием должно быть +-. Библиотека не модифицируется.

Ambiquity between функция_1And функция_2

Сообщение об ошибке этапа компиляции

(неоднозначность между функцией_1 и функцией_2)

С переданными параметрами могут использоваться обе названные

переопределенные функции. Такая неоднозначность недопустима.

Ambiguous member name имя

Сообщение об ошибке этапа компиляции

(неоднозначное имя элемента)

Элемент структуры имя, используемый во встроенном ассемблере, должен быть уникален. Если определяется более одной структуры, то все определения должны соответствовать типу и смещению в

структурах. В данном случае элемент с указанным именем является

неоднозначным. Используйте синтаксис: (struc xxx).yyy.

Ambiguous Override of Virtual Base Member функция1: функция2

Сообщение об ошибке этапа компиляции

(неоднозначное переопределение виртуальной базовой функции)

Виртуальная функция виртуального базового класса переопределяется двумя или более различными функциями в различных ветвях

иерархии наследования.

Ambiguous operators need parentheses

Предупреждение этапа компиляции

(неоднозначные операции требуют круглых скобок)

Данное предупреждение выдается, две операции сдвига, отношения или поразрядные логические операции используются вместе без

круглых скобок. Кроме того это предупреждение появится, если операция вычитания используется без скобок вместе с операцией сдвига. Программисты часто путают приоритеты этих операций, поскольку

присвоенные им приоритеты не очевидны.

Ambiguous override of virtual base member базовая_функция:

производная_функция

Сообщение об ошибке этапа компиляции

(неоднозначное переопределение виртуальной базовой функции-элемента в производной функции)

Виртуальная функция, определенная в виртуальном базовом

классе, переопределяется в двух различных классах с одинаковой

иерархией наследования.

Application load & execute error 0001

Application load & execute error FFE0

Фатальная ошибка командной строки

(ошибка загрузки и выполнения прикладной программы)

Не хватает расширенной памяти для загрузки средств командной

строки защищенного режима.

Application load & execute error FFE0

Фатальная ошибка командной строки

Не хватает расширенной памяти для загрузки средств командной

строки защищенного режима.

ArrayAllocated using new may not haveAn initializer

Сообщение об ошибке этапа компиляции

(в выделении массива с помощью new может отсутствовать инициализатор)

При инициализации вектора (массива) классов вы должны использовать конструктор без аргументов. Это называется конструктором, используемым по умолчанию, что означает, что вы можете при

инициализации такого вектора не указывать аргументы.

Array bounds missing ]

Сообщение об ошибке этапа компиляции

(в задании границ массива отсутствует ])

В исходном файле в объявлении границ массива отсутствует

закрывающая квадратная скобка.

Array must haveAt least one element

Сообщение об ошибке этапа компиляции

(массив должен иметь хотя бы один элемент)

Язык Си стандартаANSI и С++ требуют, чтобы массив определялся хотя бы с одним элементом (объекты нулевого размера недопустимы). Существует старый программистский прием, состоящий в

том, чтобы объявить элемент структуры типа массива нулевого размера, а уже затем при помощи функции malloc распределить фактически требуемую память. Этот прием по-прежнему можно использовать, но теперь вы обязаны объявлять массив, как имеющий (как минимум) один элемент. Разумеется, объявления (в противоположность

определениям) массивов неизвестного размера допустимы.

Например:



 char ray[] /* определение массива неизвестного размера





 недопустимо */





 char ray[0] /* определение массива нулевого размера





 недопустимо */





 extern char ray(); /* объявление с незаданным размером -





 допустимо */





Array of references is notAllowed

Сообщение об ошибке этапа компиляции

(массив ссылок недопустим)

Массив ссылок недопустим, поскольку указатели на ссылки недопустимы, а имена массивов встраиваются в указатели.

Array size for ‘delete’ ignored

Предупреждение этапа компиляции

(размер массива для ‘delete’ игнорируется)

В последней спецификации С++ больше нет необходимости при

удалении массива задавать его массив. Чтобы можно было компилировать старый код, компилятор игнорирует такую конструкцию и выводит предупреждение.

Array size too lange

Сообщение об ошибке этапа компиляции

(размер массива слишком велик)

Объявленный массив превышает 64К.

Array variable идентификатор is near

Предупреждение этапа компиляции

(переменная-массив идентификатор является ближней)

При использовании параметров командной строки -Ff или -Fm

или команды интегрированной среды Options CompilerAdvanced Code

Generation… Far Data Treshhold глобальные переменные, превышающие пороговый размер, автоматически делаются компилятором дальними (far). Однако, если переменная является инициализированным

массивом с незаданным размером, то его общий размер в момент принятия решения о том, сделать ли его ближним или дальним, неизвестен, и компилятор делает его ближним. Если число заданных для

массива инициализаторов вызывает превышение общим размером переменной порогового значения размера данных, то компилятор выдает

это предупреждение. Если тот факт, что компилятор сделал переменную ближней, вызывает проблемы (например, компоновщик сообщает о

переполнении группы из-за слишком большого числа глобальных данных), вы должны явно сделать переменную дальней, поместив ключевое слово far непосредственно слева от имени переменной в ее объявлении.

Assembler statement too long

Сообщение об ошибке этапа компиляции

(слишком длинный ассемблерный оператор)

Операторы встроенного ассемблера не могут превышать по длине

480 байт.

Assigning тип to перечислимый_тип

Предупреждение этапа компиляции

(присваивание типа перечислимому типу)

Присваивание целочисленного значения типу enum. Это является

ошибкой в C++, но выдаваемое сообщение имеет уровень предупреждения, и программа может заработать.

Assignment to this is notAllowed, use X::operator new instead

Сообщение об ошибке этапа компиляции

(такое присваивание не допускается, используйте вместо него

X::operator new)

В старых версиях С++ единственный способ управления распределением класса объектов заключался в присваивании параметру this

внутри конструктора. Теперь это отменено, поскольку существует

более эффективный, надежный и более общий способ, состоящий в определении функции-элемента operator new.

Attempt to export non-public symbol идентификатор

Предупреждение утилиты TLINK

(попытка экспорта идентификатора, не являющегося общедоступным)

Имя идентификатора было указано в разделе EXPORTS файла определения модуля, но идентификатор с данным именем не найден в

компонуемых модулях, как общедоступный. Это может быть вызвано

опечаткой в имени или тем, что не определена процедура с таким

именем.

Attempt to grant or reduceAccess to идентификатор

Сообщение об ошибке этапа компиляции

(попытка предоставить или ограничить доступ к идентификатору)

Производный класс С++ может модифицировать полномочия доступа к элементу базового класса, но только восстанавливая их в полномочия базового класса. В нем не могут добавляться или ограничиваться эти полномочия.

Attempting to returnA reference toA local object

Сообщение об ошибке этапа компиляции

(попытка вернуть ссылку на локальный объект)

В функции, возвращающей ссылочный тип, вы попытались вернуть

ссылку на временный объект (возможно, в качестве результата вызова конструктора или функции). Поскольку при возврате из вызова

временный объект исчезнет, то ссылка на него недопустима.

Attempting to returnA reference to local name идентификатор

Сообщение об ошибке этапа компиляции

(попытка вернуть ссылку на локальное имя идентификатор)

Данная функция С++ возвращает значение типа ссылки, и вы пытаетесь вернуть ссылку на локальную (динамическую) переменную.

Это недопустимо, поскольку такая переменная при выходе из функции

уничтожается. Вы можете вернуть ссылку на любую статическую или

глобальную переменную, либо изменить функцию таким образом, чтобы

возвращалась не ссылка, а само значение.

— B —

Bad call of intristic function

Сообщение об ошибке этапа компиляции

(неверный вызов неявной функции)

Вы использовали данную неявную функцию без определения прототипа, или указали для данной функции не тот прототип, который

ожидается компилятором.

Bad character in parameters -> символ

Сообщение об ошибке утилиты TLINK

(неверный символ в параметрах)

В командной строке или в командном файле обнаружен один из

следующих символов:



 "   *   <  =   >   ?   [   ]   |







либо любой управляющий символ, отличный от горизонтальной табуляции, перевода строки, возврата каретки или Ctrl-Z.

Bad define directive syntax

Сообщение об ошибке этапа компиляции

(неверный синтаксис директивы определения)

Макроопределения начинается или заканчивается операцией ##,

или содержит операцию #, за которой следует имя макроаргумента.

Bad field list in debug information in module модуль

Сообщение об ошибке утилиты TLINK

(неверный список полей в отладочной информации модуля)

Обычно эта ошибка вызывается неверной отладочной информацией

в файле OBJ. Сообщите о нейBorland.

Bad file name имя_файла

Сообщение об ошибке этапа компиляции

(неверное имя файла)

Компоновщику передано недопустимое имя файла.

Bad file name format in include directive

Сообщение об ошибке этапа компиляции

(неправильный формат имени файла в директиве включения)

Имена включаемых файлов должны заключаться в кавычки

(«имя_файла.h») или в угловые скобки (<имя_файла.h>). Перед именем файла отсутствовала открывающая кавычка или угловая скобка.

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

Bad file name format in include statement

Сообщение об ошибке утилиты MAKE

(в операторе включения задан неправильный формат имени файла)

Имена включаемых файлов должны заключаться в кавычки или угловые скобки. Были пропущена открывающая кавычка или угловая

скобка.

Bad file name format in inline directive

Сообщение об ошибке этапа компиляции

(неправильный формат имени файла в директиве inline)

Имена включаемых файлов должны заключаться в кавычки

(«имя_файла.h») или в угловые скобки (<имя_файла.h>). Перед именем файла отсутствовала открывающая кавычка или угловая скобка.

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

Bad GCD type in GRPDEF, extended dictionary aborted

Bad GRPDEF type encountered, extended dictionary aborted

Предупреждение утилиты TLIB

(неверный тип GCS в DRPDEF, расширенный словарь отброшен)

Библиотекарь при создании расширенного словаря обнаружил недопустимую запись в определении группы (GRPDEF) в объектном модуле. Единственным типом записи GRPDEF, который поддерживает библиотекарь и компоновщик, является индексный тип сегмента. Если

обнаружен другой тип GRPDEF, то библиотекарь не сможет создать

расширенный словарь. Возможно, объектный модуль, создаваемый продуктами, отличными отBorland, содержат записи GRPDEF других типов. К этому предупреждению может также приводить запорченный объектный модуль.

Bad header in input LIB

Cообщение об ошибке утилиты TLIB

(неверный заголовок во входной библиотеке)

При добавлении объектных модулей к существующей библиотеке

библиотекарь определил, что неверен заголовок библиотеки. Перестройте библиотеку.

Bad ifdef directive syntax

Сообщение об ошибке этапа компиляции

(неверный синтаксис директивы ifdef)

Директива #ifdef должна содержать в теле директивы единственный идентификатор (и ничего более).

Bad LF_POINTER in module модуль

Сообщение об ошибке утилиты TLINK

(неверный LF_POINTER в модуле)

Обычно эта ошибка вызывается неверной отладочной информацией

в файле OBJ. Сообщите о нейBorland.

Bad macro output translator

Сообщение об ошибке утилиты MAKE

(неверная трансляция выходной макрокоманды)

Неверен синтаксис подстановки внутри макрокоманд. Например:



          $(MODEL:=s) или $(MODEL:) или $(MODEL:s)



Bad object file record

Bad object file файл near offset смещение

Сообщение об ошибке утилиты TLINK

(неверная запись объектного файла в библиотечном файле в модуле с указанным ближним смещением)

Обнаружен неверно сформированный объектный файл. Обычно это

вызывается указанием имени исходного файла или объектного файла,

который сформирован не полностью. Это может произойти, если при

компиляции машина была перезагружена, или при выводе объектного

файла нажаты клавиши Ctrl+Break.

Bad OMF record type тип encountered in module модуль

Сообщение об ошибке утилиты TLIB

(в модуле обнаружен неверный тип записи OMF)

Библиотекарь при чтении объектного файла обнаружил неверную

запись OMF (формат объектного модуля). Библиотекарь уже считал и

проверил записи-заголовки модуля модуль, поэтому обычно это указы-

вает, что объектный модуль запорчен, и его следует восстановить.

Bad syntax for pure function definition

Сообщение об ошибке этапа компиляции

(неверный синтаксис определения «чистой» функции)

«Чистые» (без побочных эффектов) виртуальные функции задаются добавлением в определение символов «=0». Вы написали что-либо

похожее, но не совпадающее с требуемым в точности.

Bad undef directive syntax

Сообщение об ошибке этапа компиляции

(неверный синтаксис директивы undef)

Директива #undef должна содержать в качестве тела директивы

единственный идентификатор (и ничего более).

Bad undef statement syntax

Сообщение об ошибке утилиты MAKE

(ошибка в синтаксисе оператора «разопределения»)

Оператор !undef должен содержать один идентификатор и ничего

больше, как тело оператора.

Bad version number in parameterBlock

Сообщение об ошибке утилиты TLINK

(неверный номер версии в блоке параметров)

Эта ошибка указывает не внутреннее несоответствие в интегрированной среде. Если она возникает, выйдите из интегрированной

среды и перезапустите ее. При работе с автономной версией данная

ошибка не возникает.

Base class класс contains dinamically dispatchable functions

Сообщение об ошибке этапа компиляции

(базовый класс содержит динамически диспетчеризируемые функции)

В настоящий момент динамически диспетчеризуемые виртуальные

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

порождающих классов.

Base class класс is inaccessibleBecause also in класс

Предупреждение этапа компиляции

(базовый класс недоступен в указанном классе)

Недопустимо использовать класс, одновременно как базовый и

косвенный базовый класс, поскольку его элементы автоматически

становятся неоднозначными. Попробуйте сделать базовый класс в

обоих случаях виртуальным.

Base class класс is included more than once

Сообщение об ошибке этапа компиляции

(базовый класс «класс» включен более одного раза)

Класс С++ может быть производным от любого числа базовых

классов, но непосредственно от одного и того же класса он может

быть производным только один раз.

Base class класс is initialized more than once

Сообщение об ошибке этапа компиляции

(базовый класс «класс» инициализируется более одного раза)

В конструкторе класса С++ список инициализации, следующий за

заголовком конструктора, включает указанный базовый класс более

одного раза.

Base initialization without a class name is now obsolete

Сообщение об ошибке этапа компиляции

(инициализация базового класса без имени класса является устаревшей)

Ранние версии С++ для инициализации базового класса позволяли помещать за заголовком конструктора просто список параметров

конструктора базового класса. Теперь рекомендуется включать имя

базового класса.

Это делает программу понятней и является обязательным в случае множественных базовых классов.

Старая запись:



          derived::derived(int i) : (i, 10) { ... }







Новая запись:



          derived::derived(int i) :Base(i, 10) { ... }





Bit field cannotBe static

Сообщение об ошибке этапа компиляции

(Битовое поле не может быть статическим)

Только обычные данные-элементы классов С++ могут быть объявлены как static, но не битовые поля.

Bit field too large

Сообщение об ошибке этапа компиляции

(битовое поле слишком велико)

Это ошибка может возникать, когда вы указываете битовое поле

длиной более 16 бит.

Bit field mustBe signed or unsigned int

Сообщение об ошибке этапа компиляции

(битовые поля должны иметь тип signed или unsigned int)

Битовое поле должно быть объявлено с целочисленным типом

signed или unsigned. В языке Си стандарта ANSI битовые поля могут

быть только signed или unsigned int (но, например, не сhar или

long).

Bit field mustBe signed or unsigned int

Предупреждение этапа компиляции

(битовые поля должны иметь тип signed или unsigned int)

В Си стандарта ANSI битовые поля не могут иметь тип char или

unsigned char. Однако, если компиляция не выполняется в строгом

режиме ANSI, компилятор будет допускать такую конструкцию, но отмечать ее данным предупреждением.

Bit fields must contain at least oneBit

Сообщение об ошибке этапа компиляции

(битовые поля должны содержать как минимум один бит)

Вы не можете объявить именованное битовое поле длиной 0 (или

менее 0) бит. Можно объявить битовое поле нулевой длины без имени, по соглашению используемое для принудительной установки выравнивания битового поля по границе байта (или по границе слова,

если выбран параметр выравнивания -a).

Bit field must have integral type

Сообщение об ошибке этапа компиляции

(битовые поля должны иметь целый тип)

В С++ битовые поля, включая перечисления, должны иметь целый

тип; это включает в себя перечисления.

Body already defined for this function функция

Сообщение об ошибке этапа компиляции

(тело функции функция уже определено)

Тело функции с этим же именем и типом уже встречалось выше.

Тело функции может входить в программу только один раз.

Both return and return with a value

Предупреждение этапа компиляции

(одновременно присутствуют операторы return и return с заданным значением)

Текущая функция содержит операторы return с заданным значением возврата и без значения возврата одновременно. В Си это допустимо, но практически всегда является ошибкой. Вероятно, оператор return просто был опущен в конце функции.

— C —

Call of non-function

Сообщение об ошибке этапа компиляции

(вызов не функции)

Вызываемое имя не было объявлено как функция. Эта ошибка

обычно возникает при неправильном объявлении или опечатке в имени

функции.

Call to function функция with no prototype

Предупреждение этапа компиляции

(вызов функции функция без прототипа)

Это сообщение выдается в тех случаях, когда разрешено сообщение «Prototype required» («Требуется прототип»), и вы вызываете

функцию функция без первоначального задания прототипа этой

функции.

Call to undefined function функция

Сообщение об ошибке этапа компиляции

(вызов не определенной функции)

В вашей программе текущая функция описывается как возвращающая тип, отличный от void в С++ (или int в Си), но компилятор обнаружил возврат без значения. Обычно это указывает на ошибку.

virtual cannot be used with data member

Сообщение об ошибке этапа компиляции

(virtual нельзя использовать с элементами данных)

Элемент данных описан как virtual. Так можно описывать только функции-элементы.

Cannot access an inactive scope

Сообщение об ошибке этапа компиляции

(нельзя обратиться к неактивной области действия)

Вы пытаетесь проверить или вычислить переменную, локальную

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

Cannot add or substract relocatable symbols

Сообщение об ошибке этапа компиляции

(сложение или вычитание переместимых идентификаторов невозможно)

Единственная арифметическая операция, которая может выполняться с переместимым именем идентификатора в качестве ассемблерного операнда — это сложение или вычитание с константой. Переменные, процедуры, функции и метки являются переместимыми идентификаторами. Если Var — это переменная, а Const — это константа, то

команды:



          MOV AX,Const+Const





 и





          MOV AX,Var+Const







допустимы, а команда MOV AX AX,Var+Var недопустима.

Cannot allocate a reference

Сообщение об ошибке этапа компиляции

(нельзя выделить ссылку)

Предпринята попытка создать ссылку с помощью операции new.

Это не допускается, поскольку ссылки не являются объектами, поэтому их нельзя распределить с помощью new.

идентификатор cannot be declared in an anonymous union

Сообщение об ошибке этапа компиляции

(идентификатор нельзя описать в анонимном объединении)

Компилятор обнаружил описание функции-элемента или статический элемент анонимного объединения. Такие объединения могут содержать только элемент данных.

функция_1 cannot be distinguished from функция_2

Сообщение об ошибке этапа компиляции

(функция_1 не может отличаться от функции_2)

Тип параметра, указанный в описании этих двух функций не отличаются достаточно, чтобы их можно было идентифицировать как

различные. Попробуйте изменить порядок параметров в одном из описаний.

Cannot call main from within the program

Сообщение об ошибке этапа компиляции

С++ не допускает рекурсивных вызовов функции main.

Cannot call near class member function with a pointer of type тип

Сообщение об ошибке этапа компиляции

(невозможно вызвать функцию-элемент ближнего класса с указателем указанного типа)

Функции-элементы ближних классов (классы являются ближними

по умолчанию в моделях памяти TINY, SMALL и MEDIUM) нельзя вызывать с помощью указателей элементов типа FAR или HUGE. (Заметим,

что это применимо также к вызовам элементов с помощью указателей.) Либо измените указатель на ближний, либо опишите класс как

дальний.

Cannot cast from тип_1 to тип_2

Сообщение об ошибке этапа компиляции

(Приведение типа между типом_1 и типом_2 невозможно)

Приведение типа тип_1 к типу тип_2 здесь запрещено. В Си

указатель может быть приведен к целому типу или к другому типу

указателя. Целочисленный тип может быть приведен к любому целому

типу, типу с плавающей точкой и указателю. Тип с плавающей точкой

может быть приведен к целому типу или другому типу с плавающей

точкой. Структуры и массивы не позволяют выполнение для них приведений типа. Невозможны также приведения для типа void.

В С++ проверяется наличие преобразований и конструкторов,

определяемых пользователем, и в случае их отсутствия применяются

правила приоритета (за исключением указателей на элементы класса). Из целых типов только для константы со нулевым значением допускается приведение к типу указателя элемента. Указатель элемента допускает приведение к целому типу или аналогичному указателю

элемента. Последний будет указывать на элемент данных, если на

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

Cannot convert тип_1 to тип_2

Сообщение об ошибке этапа компиляции

(невозможно преобразовать тип_1 в тип_2)

Присваивание, инициализация или выражение требует выполнение

заданного преобразования типа, но данное преобразование недопустимо.

Cannot create instance abstract class класс

Сообщение об ошибке этапа компиляции

(Создание экземпляра абстрактного класса класс невозможно)

Абстрактные классы с «чистыми» виртуальными функциями не могут использоваться непосредственно, допускается лишь создание

производных (порожденных) от них классов.

Cannot define a pointer or reference to a reference

Сообщение об ошибке этапа компиляции

(Определение указателя или ссылки на ссылку невозможно)

Указатель на ссылку или ссылку на ссылку не допускается.

Cannot find класс::класс (класс&) to copy a vector

Сообщение об ошибке этапа компиляции

(Не найден класс::класс (класс&) для копирования вектора)

Если класс С++ класс_1 содержит вектор (массив) класса

класс_2 и вы хотите сконструировать объект типа класс_1 из другого объекта типа класс_1, то должен быть конструктор

класс_2::класс_2 (класс_2&) такой, чтобы могли быть сконструированы элементы вектора.

Данный конструктор принимает только один

параметр (являющийся ссылкой на его класс) и называется конструктором ссылки.

Обычно компилятор создает конструктор ссылки автоматически.

Однако, если вы определили конструктор для класса класс_2, имеющего параметр типа класс_2, и дополнительные параметры со значениями по умолчанию, то данный конструктор ссылки не может существовать и не может быть создан компилятором. (Вследствие того, что

класс_2::класс_2 (класс_2&) и класс_2::класс_2 (класс_2&, int =

1) не различаются компилятором). Вы обязаны переопределить данный

конструктор таким образом, чтобы не все параметры имели значения

по умолчанию. Затем вы можете определить конструктор ссылки или

позволить компилятору создать собственный.

Cannot find класс::операция= (класс&) to copy a vector

Сообщение об ошибке этапа компиляции

(Не найден класс::операция=(класс&)для копирования вектора)

Когда в С++ класс «класс_1» содержит вектор (массив) класса

класс_2, и вы хотите скопировать класс типа класс_1, где должна

быть операция присваивания класс::операция=(класс&), для копирования данного вектора. Обычно компилятор подставляет такую операцию автоматически. Однако, если вы для класса_2 определяете operator=, но не ту, которая воспринимает параметр типа класс&, то

компилятор не будет подставлять ее автоматически — вы должны указать ее сами.

Cannot find default конструктор to initialize array element

of type класс

Сообщение об ошибке этапа компиляции

(для инициализации элемента массива типа класс невозможно

найти используемый по умолчанию конструктор)

При описании массива класса, имеющего конструкторы, вы должны либо явно инициализировать каждый элемент данного массива, либо класс должен содержать используемый по умолчанию конструктор

(он будет использоваться для инициализации элементов массива, не

имеющих явных инициализаторов). Если вы не определили конструктор

по умолчанию, компилятор будет определять для класса используемый

по умолчанию конструктор.

Cannot find default конструктор to initialize base class

класс

Сообщение об ошибке этапа компиляции

(для инициализации базового класса класс невозможно найти

используемый по умолчанию конструктор)

Когда в С++ строится производный класс «класс_2», должен

быть построен каждый базовый класс «класс_1». Если конструктор

для класса_2 не задает конструктор для «класса_1» (как часть заголовка класса_2), то должен существовать конструктор

класс_1::класс_1() для базового класса. Данный конструктор без

параметров называется используемым по умолчанию конструктором.

Если вы не определили используемый по умолчанию конструктор, компилятор будет подставлять используемый по умолчанию конструктор

автоматически. Если вы определили конструктор, его нужно указать

явно.

Cannot find default конструктор to initialize member идентификатор

Сообщение об ошибке этапа компиляции

(для инициализации элемента идентификатор невозможно найти

используемый по умолчанию конструктор)

Если класс С++ класс_2 содержит элемент класса класс_2, и вы

хотите построить объект типа класс_1, но не из другого объекта

типа класс_1, то требуется наличия конструктора

класс_2::класс_2(), благодаря чему может быть построен данный

элемент. Данный конструктор без параметров называется используемым по умолчанию конструктором. Если вы не определили используемый по умолчанию конструктор для класса класс_2, компилятор будет

подставлять используемый по умолчанию конструктор автоматически.

Если вы определили конструктор, его нужно указать явно.

Cannot find MAKE.EXE

Сообщение об ошибке утилиты MAKE

(не найден файл MAKE.EXE)

Не найдена утилита MAKE. Убедитесь, что она находится в текущем каталоге или по маршруту.

Cannot generate COM file: data below initial CS:IP defined

Сообщение об ошибке утилиты TLINK

(файл COM сгенерировать невозможно, определены данные ниже

первоначального значения CS:IP)

Данная ошибка является результатом попытки сгенерировать

данные или код ниже стартового адреса файла .COM (обычно 100).

Убедитесь, что начальный адрес устанавливается в значение 100 с

помощью инструкции ORG 100H. Для программ, написанных на языке

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

инициализации (C0x).

Cannot generate COM file: invalid initial entry point address

Сообщение об ошибке утилиты TLINK

(файл COM сгенерировать невозможно: неверный адрес начальной

точки входа)

Вы использовали параметра /Tdc или /t, но начальный адрес

программы не равен 100H, что требуется для файлов .COM.

Cannot generate COM file: program exceeds 64K

Сообщение об ошибке утилиты TLINK

(файл COM сгенерировать невозможно: программа превышает по

размеру 64К)

Вы использовали параметр /Tdc или /t, но общий размер программы превышает предел формата .COM.

Cannot generate COM file: segment-relocatable items present

Сообщение об ошибке утилиты TLINK

(невозможно сгенерировать файл COM: присутствуют относитель-

ные перемещаемые записи)

Вы использовали параметр /Tdc или /t, но программа содержит

относительные корректировки сегмента, которые не допускаются в

файлах .COM.

Cannot generate COM file: stack segment present

Сообщение об ошибке утилиты TLINK

(невозможно сгенерировать файл COM: присутствуют сегмент

стека)

Вы использовали параметр /Tdc или /t, но программа содержит

сегмент стека, что не допускается для файлов .COM.

Cannot generate функция from template function шаблон

Сообщение об ошибке этапа компиляции

(из указанного шаблона невозможно сгенерировать данную функцию)

Обнаружен вызов шаблона функции, но соответствующую шаблону

функцию нельзя сгенерировать из данного шаблона.

Cannot have a non-inline function in a local class

Cannot have a static data in a local class

Сообщение об ошибке этапа компиляции

(в локальном классе встроенная функция или статические данные не допускаются)

Все элементы класса, описанного для функции как локальный,

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

Cannot have multiple paths for implicit rule

Сообщение об ошибке утилиты MAKE

(для неявных правил не допускается несколько маршрутов)

Для каждого расширения неявного правила может быть только

один маршрут. Списки множественных маршрутов допустимы только для

зависимых файлов и в явном правиле, например:



         {path1;path2}.c.obj: # недопустимо





         {path}.c.obj # допустимо





Cannot have paths for target

Сообщение об ошибке утилиты MAKE

(для целевого файла не допускается несколько маршрутов)

Списки множественных маршрутов допустимы только для зависимых файлов и явном правиле, например:



        {path1;path2}.c.obj: # недопустимо





        {path}.c.obj # допустимо





Cannot initialize a class member here

Сообщение об ошибке этапа компиляции

(инициализация элемента класса здесь невозможна)

Отдельные элементы структур, объединений и классов С++ могут

не иметь инициализаторов. Структура или объединение могут инициализироваться как единое целое при помощи инициализаторов в фигурных скобках. Класс С++ можно инициализировать только при помощи

конструктора.

Cannot initialize тип_1 with тип_2

Сообщение об ошибке этапа компиляции

(тип_1 не может быть инициализирован типом_2)

Вы пытаетесь инициализировать объект типа тип_1 значением

типа тип_2, что недопустимо. Правила инициализации те же, что и

для присваивания.

Cannot modify a const object

Сообщение об ошибке этапа компиляции

(модификация объекта-константы невозможна)

Недопустимая операция с объектом, объявленным константой,

например, попытка присваивания такому объекту.

Cannot overload ‘main’

Сообщение об ошибке этапа компиляции

(переопределение функции ‘main’ невозможно)

Функция main — это единственная функция, переопределить которую нельзя.

функция cannot return a value

Сообщение об ошибке этапа компиляции

(функция не может возвращать значение)

Это сообщение выдается, если функция с типом возврата void

содержит оператор return, возвращающий некоторое значение, например, int.

идентификатор cannot start an argument declaration

Сообщение об ошибке этапа компиляции

(указанный идентификатор не может начинать описание аргумента)

В начале аргумента в описателе функции найден не определенный идентификатор. Это часто вызывается опечатками в имени или

описании типа или пропуском (ошибка обычно возникает при включении файла заголовка).

идентификатор cannot start an parameter declaration

Сообщение об ошибке этапа компиляции

(указанный идентификатор не может начинать описание параметра)

В начале аргумента в описателе функции найден не определенный идентификатор. Это часто вызывается опечатками в имени или

описании типа или пропуском (ошибка обычно возникает при включении файла заголовка).

Cannot take address of main

Сообщение об ошибке этапа компиляции

(адрес main получить невозможно)

В С++ не допускается получение адреса функции main.

Cannot throw type — ambiguous class база

Сообщение об ошибке этапа компиляции

(тип породить невозможно — неоднозначный базовый класс)

Не допускается порождать класс, содержащий более одной копии

невиртуального (базового) класса.

Cannot write a string option

Сообщение об ошибке утилиты MAKE

Параметр -W утилиты MAKE записывает в MAKE.EXE символьный

параметр. При строковом параметре генерируется данное сообщение.

Cannot write GRPDEF list, extended dictionary aborted

Сообщение об ошибке утилиты TLIB

(список GRPDEF записать невозможно, расширенный словарь отброшен)

Библиотекарь не может записать в конец библиотечного файла

расширенный словарь. Обычно это указывает на недостаток места на

диске.

Can’t grow LE/LIDATA record buffer

Сообщение об ошибке утилиты TLIB

(невозможно увеличение записи буфера LE/LIDATA)

Ошибка командной строки. См. сообщение out of memory reading

LE/LIDATA record from object buffer

.

Case bypassed initialization of local variable

Сообщение об ошибке этапа компиляции

(конструкция case обошла инициализацию локальной переменной)

В С++ недопустимо любым способом обходить инициализацию локальной переменной. В данном случае в конструкторе case имеется

ветвь, по которой управление передается за точку инициализации

локальной переменной.

Case outside of switch

Сообщение об ошибке этапа компиляции

(оператор case вне оператора switch)

Компилятор встретил оператор case вне оператора switch. Это

часто случается при несоответствии числа правых и левых фигурных

скобок.

Case statement missing :

Сообщение об ошибке этапа компиляции

(в операторе case отсутствует :)

Оператор case должен содержать выражение типа константы, за

которым следует двоеточие. Либо в выражении оператора case отсутствует двоеточие, либо перед двоеточием находится лишний идентификатор.

Catch expected

Сообщение об ошибке этапа компиляции

(требуется catch)

В программе С++ за блоком try должен следовать по крайней

мере один блок catch.

Character constant must be one or two characters long

Сообщение об ошибке этапа компиляции

(символьная константа должна иметь в длину один или два символа)

Символьные константы могут иметь длину только в один или два

символа.

Character constant too long

Сообщение об ошибке утилиты MAKE

(слишком длинная символьная константа)

Символьные константы могут иметь длину только в один или два

символа.

Circular depandency exists in makefile

Фатальная ошибка утилиты MAKE

(в формирующем файле имеется циклическая зависимость)

Формирующий файл указывает, что файл должен иметь новую версию до того, как его можно построить. Возьмем, например, явные правила:



    filea: fileb





    fileb: filec





    filec: filea







Это предполагает, что файл filea зависит от файла fileb, который зависит от файла filec, а файл filec зависит от файла filea. Это недопустимо, так как прямо или косвенно не может зави сеть от самого себя.

Class класс may not contain pure functions

Сообщение об ошибке этапа компиляции

(указанный класс может не содержать «чистых» функций)

Описанный класс не является абстрактным, поэтому он может не

содержать «чистых» функций.

Class member элемент declared outside its class

Сообщение об ошибке этапа компиляции

(элемент класса объявлен вне своего класса)

Функции-элементы класса С++ могут описываться только внутри

объявления класса. В отличие от функций, не являющихся элементами

класса, они не могут иметь несколько объявлений или описываться в

других местах.

Code has no effect

Предупреждение этапа компиляции

(код не вызывает никаких действий)

Данное предупреждение выдается, когда компилятор встречает

оператор с операциями, не выполняющими никаких действий. Например, оператор:



        a + b;







не оказывает воздействия ни на какую переменную. Операция не нужна и наверняка записана по ошибке.

Colon expected

Фатальная ошибка утилиты MAKE

(требуется двоеточие)

Вы забыли указать в конце неявного правила двоеточие.



           .c.obj: # правильно





           .c.obj # неправильно





Command arguments too long

Фатальная ошибка утилиты MAKE

(Аргументы команды имеют слишком большую длину)

Аргументы команды, выполняемой обслуживающей программой

MAKE, имеют в длину более 127 знаков — ограничение, установленное

системой DOS.

Command syntax error

Фатальная ошибка утилиты MAKE

(синтаксическая ошибка в команде)

Это сообщение появляется, если:

  • Первая строка правила начинается с пробела.
  • Неявное правило не состоит из расшир.расшир:.
  • Явное правило не содержит имени перед : символа.
  • Макроопределение не содержит имени перед = символ.

Command too long

Фатальная ошибка утилиты MAKE

(слишком длинная команда)

Длина команды превышает 128 символов. Желательно использовать командный файл утилиты.

Common segment exceeds 64K

Сообщение об ошибке утилиты TLINK

(общий сегмент превышает 64К)

Программа содержит более 64К ближних неинициализированных

данных. Попытайтесь описать некоторые неинициализированные данные, как дальние.

Compiler could not generate copy constructor for class класс

Сообщение об ошибке этапа компиляции

(компилятор не может сгенерировать конструктор копирования

для класса класс)

В соответствии с правилами языка компилятор не может сгенерировать для класса необходимый конструктор копирования.

Compiler could not generate default constructor for class

класс

Сообщение об ошибке этапа компиляции

(компилятор не может сгенерировать используемый по умолчанию

конструктор для класса)

В соответствии с правилами языка компилятор не может сгенерировать для класса необходимый конструктор, используемый по

умолчанию.

Compiler could not generate operator= for class класс

Сообщение об ошибке этапа компиляции

(компилятор не может сгенерировать для класса operator=)

В соответствии с правилами языка компилятор не может сгенерировать для класса необходимую операцию присваивания.

Compiler table limit exceeded

Фатальная ошибка этапа компиляции

(превышен размер таблицы компилятора)

Данное сообщение появляется при переполнении одной из внутренних таблиц компилятора. Это обычно означает, что компилируемый

модуль содержит слишком много объявлений классов C++, либо слишком много функций или других элементов программы. В этом случае

увеличение доступной компилятору памяти не поможет. Единственным

средством обычно является упрощение файлов программы.

Compound statement missing }

Сообщение об ошибке этапа компиляции

(в составном операторе отсутствует })

Компилятор дошел до конца исходного файла, но не обнаружил

закрывающей фигурной скобки. Это обычно бывает при несовпадающем

количестве правых и левых скобок.

Condition is always false

Condition is always true

Предупреждение этапа компиляции

(условие всегда ложно/истинно)

Компилятор обнаружил сравнение значений, при котором результат всегда принимает ложное или истинное значение. Например:



         void proc(unsigned x)



         {





         if (X >= 0) /* всегда 'true' */





                       {





                         .





                         .





                         .





                         }





         }



Conflicting type modifiers

Сообщение об ошибке этапа компиляции

(противоречащие друг другу модификаторы типа)

Это случается, когда в объявлении встречается, например, два

ключевых слова — far и near, относящихся к одному и тому же указателю. Одному указателю может соответствовать только один модификатор адресации, а функция может иметь только один модификатор

языка (cdecl, pascal или interrupt).

идентификатор conflicts with module модуль

Сообщение об ошибке утилиты TLINK

(конфликт указанного идентификатора с модулем)

Это указывает на несогласованность определений идентификатора. TLINK нашел виртуальную функцию и одно общее определение с

тем же именем.

Constant expression required

Сообщение об ошибке этапа компиляции

(требуется выражение типа константы)

Массивы должны объявляться с заданным константой выражением.

Данная ошибка обычно вызывается опечаткой в константе в #define.

Constant is long

Предупреждение этапа компиляции

(длинная константа)

Компилятор встретил либо десятичную константу, превышающую

значение 32767, либо восьмеричную (или шестнадцатиричную) константу, превышающую значение 65535 без следующей за ней буквы l

или L. Такая константа будет рассматриваться как имеющая тип

long.

Constant member элемент is class without constructors

Сообщение об ошибке этапа компиляции

(элемент-константа элемент в классе без конструкторов)

Класс, содержащий элементы-константы, должен иметь по крайней мере один конструктор, определенный пользователем. В противном случае такие элементы инициализировать будет невозможно.

Constant member элемент is not initialized

Предупреждение этапа компиляции

(элемент-константа не инициализирована)

Класс С++ имеет константу-элемент, которая не была инициализирована. Отметим, что допустимым является инициализировать константу-элемент, а не присваивать ей значение.

Constant out of range in comparison

Предупреждение этапа компиляции

(участвующая в сравнении константа вне допустимого диапазона)

В исходном файле имеется сравнение, в котором участвует подвыражение, лежащее вне диапазона, допустимого для прочих типов

подвыражений. Например, сравнение числа unsigned с -1 не имеет

смысла. Для того, чтобы получить константу unsigned больше 32767

(десятичное), требуется либо явно задать приведение типа к

unsigned (например, (unsigned)65535), либо добавить к константе

буквы u или U (например, 65535u).

При выдаче данного сообщения компилятор тем не менее сгенерирует код для сравнения. Если даже данный код будет всегда давать одинаковый результат, например при сравнении выражения типа

Char с 4000, код все равно будет выполнять сравнение.

Constant variable переменная must be initialized

Сообщение об ошибке этапа компиляции

(указанная переменная-константа должна инициализироваться)

Данный объект С++ описан как const, но не инициализируется.

Поскольку значений ему присвоить нельзя, он должен инициализироваться в точке описания.

Constructor cannot be const or volatile

Сообщение об ошибке этапа компиляции

(конструктор не может иметь тип const или volatile)

Конструктор описан как const и/или volatile, а это не допускается.

Constructor cannot have a return type specification

Сообщение об ошибке этапа компиляции

(конструктор не может содержать спецификацию типа возврата)

Конструкторы С++ имеют неявный тип возврата, используемый

компилятором, но вы не можете описать тип возврата или возвратить

значение.

Conversion may lose significant bits

Предупреждение этапа компиляции

(при преобразовании могут быть потеряны значащие биты)

В операции присваивания, или в других обстоятельствах, требуется преобразование типа long или unsigned long в int или

unsigned int. Поскольку переменные типов int и long имеют разный

размер, такое преобразование может привести к изменению работы

программы.

Conversion of near pointer not allowed

Сообщение об ошибке этапа компиляции

(преобразование ближнего указателя недопустимо)

Ближний указатель не может преобразовываться в дальний при

вычислении выражения, если программа в текущий момент не выполняется. Причина этого состоит в том, что для преобразования требуется знать текущее значение регистра DS программы пользователя,

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

Conversion operator cannot have a return type specification

Сообщение об ошибке этапа компиляции

(операция преобразования не может иметь спецификацию типа

возврата)

Функция-элемент преобразования типа С++ задает тип возврата,

отличный от самого типа. В описании функции преобразования

operator может не задаваться никакого типа возврата.

Conversion to тип will fail fo members of virtual base класс

Сообщение об ошибке этапа компиляции

(для элементов виртуального базового класса класс преобразование к указанному типу выполнить не удастся)

Данное предупреждение выводится в некоторых случаях, когда

указатель-элемент приводится к другому типу указателя-элемента,

если класс указателя-элемента содержит виртуальные базовые

классы, и использован параметр -Vv. Это означает, что если преобразуемый указатель-элемент указывает (во время преобразования) на

элемент класса класс, то преобразование выполнить нельзя, а результатом преобразования будет указатель-элемент со значением

NULL.

Could not allocate memory for per module data

Сообщение об ошибке утилиты TLIB

(невозможно выделить память для данных модулей)

Библиотекарь исчерпал доступную память.

Could not create list file имя_файла

Сообщение об ошибке утилиты TLIB

Библиотекарь не может создать для библиотеки файл списка.

Это может вызываться нехваткой места на диске.

Could not find a match for аргумент(ы)

Сообщение об ошибке этапа компиляции:

(не найдено соответствие аргументу (аргументам))

Не найдена функция С++ с параметрами, соответствующими заданным аргументам.

Could not find file имя_файла

Сообщение об ошибке этапа компиляции

(невозможно найти файл имя_файла)

Компилятор не может найти файл, заданный в командной строке.

Could not get procedure address from DLL имя_файла

Сообщение об ошибке утилиты TLINK

(невозможно получить адрес процедуры из указанной DLL)

Компоновщик не может получить из заданной DLL адрес процедуры. Убедитесь в корректности версии DLL.

Could not load DLL имя_файла

Сообщение об ошибке утилиты TLINK

(указанную DLL загрузить невозможно)

Компоновщик не может загрузить заданную DLL. Убедитесь, что

она включена в маршрут.

Could not write output

Сообщение об ошибке утилиты TLIB

(невозможно записать выходные данные)

Библиотекарь не может записать выходной файл.

Couldn’t alloc memory for per module data

Сообщение об ошибке утилиты TLIB

(невозможно выделить память для данных модуля)

Библиотекарь исчерпал доступную память.

имя_файла couldn’t be creates, original won’t be changed

Предупреждающее сообщение об ошибке утилиты TLIB

(невозможно создать файл, содержимое исходного файла изменено не будет)

Предпринята попытка извлечь объект (действие ‘*’), но библиотекарь не может создать объектный файл, в который можно записать

выделяемый модуль. Либо объектный файл уже существует и доступен

только по чтению, либо диск переполнен.

Couldn’t get LE/LIDATA record buffer

Сообщение об ошибке утилиты TLIB

(невозможно получить буфер LE/LIDATA)

Ошибка командной строки. См. сообщение out of memory reading

LE/LIDATA record from object module.

Couldn’t get procedure address from DLL имя_файла

Сообщение об ошибке утилиты TLINK

(невозможно получить адрес процедуры из указанной DLL)

Компоновщик не может получить из заданной DLL адрес процедуры. Убедитесь, что DLL включена в маршрут.

Couldn’t load DLL имя_файла

(указанную DLL загрузить невозможно)

Компоновщик не может загрузить заданную DLL. Убедитесь, что

она включена в маршрут.

Cycle in include files: имя_файла

Сообщение об ошибке утилиты MAKE

(цикл во включаемых файлах)

Формирующий файл включает в сценарии генерации сам себя.

Назад | Содержание | Вперед

Содержание

No rule to make target
GNUmakefile:1: *** missing separator. Stop.
Syntax error : end of file unexpected (expecting «fi»)
OLDPWD not set
@echo: command not found
-bash: make: command not found
Похожие статьи

No rule to make target

make: *** No rule to make target ‘main.cpp’, needed by ‘main.o’. Stop.

GNUmakefile:1: *** missing separator. Stop.

Если вы видите ошибку

GNUmakefile:1: *** missing separator. Stop.

Обратите внимание на GNUmakefile:1:

1 — это номер строки, в которой произошла ошибка

Возможно где-то вместо табуляции затесался пробел. Напоминаю, что в makefile отступы должны быть заданы табуляциями.

Либо таргет перечислен без двоеточия .PHONY clean вместо .PHONY: clean

Либо какая-то похожая ошибка.

Syntax error : end of file unexpected (expecting «fi»)

Если вы видите ошибку

Syntax error : end of file unexpected (expecting «fi»)

Обратите внимание на расстановку ; в конце выражений и расстановку при переносе строк.

Изучите этот

пример

и сравните со своим кодом.

OLDPWD not set

Если внутри makefile вы выполняете cd и видите ошибку

OLDPWD not set

Попробуйте сперва явно перейти в текущую директорию с помощью

CURDIR

cd $(CURDIR)

@echo: command not found

Если внутри makefile вы пытаетесь подавить вывод echo и получаете

@echo: command not found

Скорее всего echo это не первая команда в строке

НЕПРАВИЛЬНО:

if [ ! -f /home/andrei/Downloads/iso/centos_netinstall.iso ]; then
rm ./CentOS-7-x86_64-NetInstall-*;
wget -r -np «http://builder.hel.fi.ssh.com/privx-builds/latest/PrivX-master/Deliverables/» -A «CentOS-7-x86_64-NetInstall-2009.iso

-*.iso;
else
@echo «WARNING: centos_netinstall.iso already exists»;

ПРАВИЛЬНО:

@if [ ! -f /home/andrei/Downloads/iso/centos_netinstall.iso ]; then
rm ./CentOS-7-x86_64-NetInstall-*;
wget -r -np «http://builder.hel.fi.ssh.com/privx-builds/latest/PrivX-master/Deliverables/» -A «CentOS-7-x86_64-NetInstall-2009.iso

-*.iso;
else
echo «WARNING: centos_netinstall.iso already exists»;

-bash: make: command not found

Ошибка

-bash: make: command not found

Означает, что make не установлен.

Установить make в rpm системах можно с помощью yum в deb система — с помощью apt

sudo yum -y install make

sudo apt -y install make

Похожие статьи

make
Основы make
PHONY
CURDIR
shell
wget + make
Переменные в Make файлах
ifeq: Условные операторы
filter
-c: Компиляция
Linux
Bash
C
C++
C++ Header файлы
Configure make install
DevOps
Docker
OpenBSD
Errors make

Возможно, вам также будет интересно:

  • Maint reqd toyota что означает ошибка
  • Mail ru ошибка при доставке
  • Mail ru ошибка отправки сообщения
  • Mail ru ошибка загрузки файла
  • Mail ru ошибка авторизации 535

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии