Синтаксическая ошибка: "(" неожиданно при выполнении скомпилированной c-программы

Я новичок в linux / script / command / etc …

Я пытаюсь выполнить программу c двоичного файла c в оболочке (эта программа была скомпилирована на другом компьютере:

gcc acqv170104.c -o acqv `mysql_config --cflags --libs` 

в командной строке:

 $ sudo ./acqv paramA paramB paramC 

и я получил это сообщение

 acqv: 1: acqv: Syntax error: "(" unexpected 

Я проверил привилегии скрипта

 -rwxrwxrwx 1 root root 20472 Jan 10 14:20 acqv 

Нужно ли мне иметь специальную библиотеку для ее выполнения?

One Solution collect form web for “Синтаксическая ошибка: "(" неожиданно при выполнении скомпилированной c-программы”

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

Сообщение «Синтаксическая ошибка:» («неожиданно», очевидно, происходит из оболочки. Почему оболочка пытается выполнить ваш двоичный файл? Потому что ядро ​​пыталось и сдавалось. Когда это происходит, sudo решает, что это может быть сценарий оболочки, правильный заголовок и пытается вызвать оболочку по своему выбору (sudo пытается запустить sh ).

Почему ядро ​​не запускало программу? Поскольку исполняемый файл не поддерживается в поддерживаемом формате. Это не просто из-за компиляции неправильной архитектуры (например, попытка запустить 64-разрядный двоичный код x86 в 32-разрядной системе или наоборот) или для неправильной операционной системы (например, попытка запустить исполняемый файл FreeBSD на Linux): ядро ​​не распознает файл как находящийся в исполняемом формате вообще. Например, если вы попытались запустить это в Linux, то это означает, что у вас нет бинарных файлов ELF . Среди обычных операционных систем попытка запустить двоичный файл macOS для Linux или наоборот приведет к этому.

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

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

  • В Emacs редактирование C, sort-fields не работает или указание единственного завершения. Зачем?
  • Как установить gcc 4-8 на #! Waldorf 64-бит?
  • / usr / bin /, который возвращает загадочную ошибку ", которая: no ls in ((null))"
  • Как действительно работает системный вызов fork
  • Вычислить общее использование ЦП в пространстве имен ПИД
  • Как предварительно загружать мой .so каждый раз, когда приложение выполняется?
  • Посмотрите документацию по типам C?
  • Генерировать необработанные фреймы Ethernet с предварительно загруженными полезными нагрузками памяти с интервалами <1 мс
  • Части заголовка файла
  • Как найти файл заголовка, где определена функция ac?
  • лучший язык программирования для интенсивных задач ввода / вывода
  • Что такое параллельное распределение памяти?
  • Interesting Posts

    Не удается переслать при просмотре экрана приветствия в Fedora 15

    Использование curl для доступа к базовому auth-защищенному веб-сайту через proxy (polipo)

    Убейте только один процесс Java

    Как настроить систему Debian (фокус на 2D или консоль / сервер) с APU Turbo Core APU для максимальной эффективности использования энергии и вычислительной мощности?

    любая утилита на centos 6, чтобы подать сигнал тревоги, когда мощность низкая

    Как фильтровать DNS-запросы с помощью dns.qry.name в tshark?

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

    Почему параметры в кавычковой переменной не работают, но работают при некорректном?

    Исправления Sendmail «Сообщение об ошибке 530» требуется при отправке authinfo

    bash regex: метасимвол asterisk убивает избыточные символы новой строки

    Получение no tty присутствует и не запрашивать программу, указанную при использовании git over ssh

    Сертификат SMIME Thunderbird не импортируется автоматически

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

    CentOS 6 устанавливает libmysqlclient.so.16 и друзей без меня спрашивает

    Каков безопасный формат жесткого диска для архивирования данных в хранилище данных?

    Linux и Unix - лучшая ОС в мире.