Run executable file in linux

How to run binary file in Linux

I have a file called commanKT and want to run it in a Linux terminal. Can someone help by giving the command to run this file? I tried ./commonRT but I’m getting the error:

"bash: ./commonrt: cannot execute binary file" [blackberry@BuildMc MainApp]$ ls -al commonKT -rwxrwxr-x. 1 sijith sijith 10314053 Feb 27 16:49 commonKT 

Assuming the problem isn’t just a mixup over names ( commonrt vs commonKT ), what does the command file commonKT /bin/sh say? If it gives two different architectures (perhaps one for ARM and one for Intel), then that’s why you can’t run the ARM one on an Intel machine.

In addition of using file , I also suggest using ldd ; perhaps the dynamic linker or some core shared library is different or missing.

Why does this question have so many upvotes? It contains so many variants of the questioned filename (commonrt, commonKT, commanKT, commonRT), that it’s not even clear what was asked. Also interesting: Does the last comment of Sijith mean that it is answered? And why did user1978011 receive bountys?

13 Answers 13

To execute a binary, use: ./binary_name .

bash: ./binary_name: cannot execute binary file

it’ll be because it was compiled using a tool chain that was for a different target to that which you’re attempting to run the binary on.

For example, if you compile ‘binary_name.c’ with arm-none-linux-gnueabi-gcc and try run the generated binary on an x86 machine, you will get the aforementioned error.

To execute a binary or .run file in Linux from the shell, use the dot forward slash friend

and if it fails say because of permissions, you could try this before executing it

 chmod +x binary_file_name # then execute it ./binary_file_name 

The volume it’s on is mounted noexec .

🙂 If not typo, why are you using ./commonRT instead of ./commonKT ??

It is possible that you compiled your binary with incompatible architecture settings on your build host vs. your execution host. Can you please have a look at the enabled target settings via

on your build host? In particular, the COLLECT_GCC_OPTIONS variable may give you valuable debug info. Then have a look at the CPU capabilities on your execution host via

cat /proc/cpuinfo | grep -m1 flags 

Look out for mismatches such as -msse4.2 [enabled] on your build host but a missing sse4_2 flag in the CPU capabilities.

If that doesn’t help, please provide the output of ldd commonKT on both build and execution host.

@craq I see that you gave me your bounty, thanks! Can you please give some info what the error was about?

Читайте также:  Все установленные ядра линукс

This is an answer to @craq :

I just compiled the file from C source and set it to be executable with chmod. There were no warning or error messages from gcc.

I’m a bit surprised that you had to ‘set it to executable’ — my gcc always sets the executable flag itself. This suggests to me that gcc didn’t expect this to be the final executable file, or that it didn’t expect it to be executable on this system.

Now I’ve tried to just create the object file, like so:

$ gcc -c -o hello hello.c $ chmod +x hello 

( hello.c is a typical «Hello World» program.) But my error message is a bit different:

$ ./hello bash: ./hello: cannot execute binary file: Exec format error` 

On the other hand, this way, the output of the file command is identical to yours:

$ file hello hello: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped 

Whereas if I compile correctly, its output is much longer.

$ gcc -o hello hello.c $ file hello hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=131bb123a67dd3089d23d5aaaa65a79c4c6a0ef7, not stripped 

What I am saying is: I suspect it has something to do with the way you compile and link your code. Maybe you can shed some light on how you do that?

Источник

Запуск EXE-файлов в Linux

Как запустить EXE в Linux

Запуск EXE-файлов в Linux — задача несложная, однако небольшие трудности заключаются в поиске инструментов, позволяющих справиться с этим. Популярной программой является Wine, и ее аналогов почти нет, а существующие неизвестны практически никому. Поэтому в сегодняшней статье мы поговорим именно об этом решении. Начать стоит с его добавления в дистрибутив, поскольку по умолчанию Wine отсутствует в любой сборке ОС, основанной на Linux.

Способ 1: Менеджер приложений

Существует несколько доступных вариантов инсталляции Wine. Первый подразумевает использование менеджера приложений, который встроен в популярные дистрибутивы, основанные на Debian или RedHat. В первую очередь рассмотрим именно этот вариант, а осуществляется поставленная цель так:

Открытие менеджера приложений для установки Wine в Linux

    Откройте основное меню, кликнув по соответствующей кнопке, и запустите оттуда «Менеджер приложений».

  • Отыщите кнопку поиска, чтобы открыть строку для ввода названия программы. Переход к поиску приложения Wine в Linux для дальнейшей установки
  • Напишите Wine и опуститесь вниз по списку, чтобы найти подходящий вариант. Успешное нахождение приложения Wine в Linux для дальнейшей установки
  • На странице программного обеспечения вас интересует кнопка «Установить». Кнопка для начала установки на странице приложения Wine в Linux
  • Для начала этой процедуры придется подтвердить подлинность учетной записи, введя пароль. Подтверждение начала установки Wine в Linux через менеджер приложений
  • Ожидайте завершения инсталляции. Данная операция займет несколько минут, поскольку Wine является объемным приложением. Ожидание завершения инсталляции приложения Wine в Linux через менеджер приложений
  • После нажмите на кнопку «Запустить», чтобы выполнить предварительную конфигурацию. Открытие программы Wine в Linux после установки через менеджер приложений

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

    Способ 2: Официальные репозитории

    Как известно, программы в «Менеджере приложений» находятся в официальных репозиториях, а принцип их установки основан на терминальных командах. Именно их и следует задействовать в тех случаях, когда нет возможности открыть решение с GUI или оно попросту отсутствует в используемом дистрибутиве. Не переживайте, управление консолью не является чем-то сложным, в чем и удостоверимся далее.

    1. Запустите «Терминал» удобным для вас образом, например, через меню приложений или горячую клавишу Ctrl + Alt + T. Запуск терминала для установки Wine в Linux через официальные репозитории
    2. В появившейся строке введите sudo apt install wine-stable . Если вы используете дистрибутив, основанный, например, на RedHat, следует заменить пакетный менеджер APT на установленный в текущей сборке. Это может быть, например, YUM или Pacman. Ввод команды для установки Wine в Linux через официальные репозитории
    3. Подтвердите действие, написав пароль суперпользователя. Учитывайте, что символы, вводимые таким образом, никогда не отображаются в консоли, однако существуют и исключения. В некоторых дистрибутивах при указании символов в строке появляются звездочки. Подтверждение установки Wine в Linux через официальные репозитории
    4. Вы будете уведомлены об увеличении количества занятого пространства. Подтвердите это сообщение, выбрав вариант Д. Одобрение уведомления о занятом пространстве при установке Wine в Linux
    5. Ожидайте окончания инсталляции. Во время этого не закрывайте «Терминал», иначе весь процесс будет сброшен. Ожидание завершения установки программы Wine в Linux через терминал
    Читайте также:  Install gns3 on linux

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

    Шаг 2: Первый запуск и настройка Wine

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

    1. Запустите софт, например, через «Менеджер приложений» или введя его название в консоли. Запуск программы Wine в Linux после установки через терминал
    2. Дождитесь завершения обновления конфигурации. Во время этого на экране будут появляться сообщения о надобности инсталляции дополнительных компонентов, включая .NET Framework и Gecko. Подготовка программы Wine в Linux для функционирования
    3. После этого отобразится графическое меню с пользовательской конфигурацией. Здесь присутствуют детальные описания каждого пункта на русском языке, поэтому мы предлагаем разобраться с этим самостоятельно. Связано это и с тем, что все параметры устанавливаются по желанию пользователей. Пользовательская настройка программы Wine в Linux после установки через терминал

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

    Шаг 3: Запуск EXE-файлов через Wine

    Перед началом выполнения поставленной задачи хотим отметить, что не стоит рассматривать Wine как полноценное средство работы с программами для Windows. Конечно, он является эмулятором, но потребление системных ресурсов при запуске софта поднимается в несколько раз, а также могут отсутствовать какие-либо опции, изначально работающие в Windows. Далее мы расскажем о более подходящих решениях для использования ПО в Linux, а сейчас давайте все-таки разберемся с выполнением EXE-объектов.

    1. Откройте файловый менеджер и переместитесь к расположению необходимого файла. Переход к файлу для его дальнейшего запуска Wine в Linux
    2. Щелкните по нему правой кнопкой мыши и в контекстном меню выберите пункт «Открыть в другом приложении». Переход к выбору приложения для запуска программы через Wine в Linux
    3. Появится отдельное окно «Выбрать приложение». Здесь вас интересует пункт «Wine — загрузчик Windows программ». Выбор программы Wine в Linux в качестве средства запуска EXE-файла
    4. Если это уже полноценный софт, он откроется в новом окне и им можно управлять. В случае взаимодействия с инсталлятором начните стандартную операцию установки. Установка EXE-файла в Wine в Linux для дальнейшего запуска
    5. Дождитесь окончания этой операции. Она может занять много времени, поскольку процессор в большинстве ситуаций нагружается на максимум. Ожидание завершения установки программы EXE через Wine в Linux
    6. После этого вы можете запустить программу через значок на рабочем столе, графический интерфейс Wine или меню приложений. Запуск установленной через Wine в Linux программы для использования
    Читайте также:  Hp deskjet 1510 linux

    Как уже было сказано ранее, запуск EXE-файлов — не лучший способ взаимодействовать с программами в Linux. Сейчас многие разработчики создают версии, корректно функционирующие в разных дистрибутивах, однако часто их нет в официальных репозиториях, то есть скачать из менеджеров приложений такой софт не получится. Приходится скачивать отдельные DEB или RPM-пакеты либо же вообще вручную распаковывать архивы. Не потрудитесь отыскать сборку требуемого софта для вашего дистрибутива, а затем установите ее, используя инструкции из приведенной далее статьи.

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

    Источник

    How to run exe file in Ubuntu [duplicate]

    If the .exe file is a windows executeable, you can’t run it directly in Ubuntu (or other Linux’s). Either you should install Wine and run it through that, or find a utility in Ubuntu that does the same as the windows one.

    Could be a slight case of the XY-problem (meta.stackexchange.com/questions/66377/what-is-the-xy-problem). If you want to convert a wav-file to raw PCM data for processing in Matlab, you could use a linux-tool like sox instead: stackoverflow.com/questions/9383576/…

    Is WAV2RAW.exe the only EXE program you want to run, or do you have several other DOS / Windows / .NET programs?

    I’m relatively sure that Matlab (and its open-source clone Octave) have native functions to parse WAVE headers and data as well as to write raw PCM data since I used them in the past. Those would obviate the need for an external conversion application unless the PCM data doesn’t fit into main memory.

    2 Answers 2

    I think you should use Wine.

    sudo apt-get install wine wine dir/WAV2RAW.exe 

    Or Mono if you know that exe is .NET application:

    sudo apt install mono-runtime mono dir/WAV2RAW.exe 

    You don’t need to chmod . Besides that, it’s worth noting that not all software runs under wine. YMMV.

    You seem to have added the chmod line according to my comment. However, I think it is only necessary if you want to run the .exe file directly, i.e. without prepending wine to the command line – like OP wants to. I haven’t tested it with Wine but it behaves this way with .NET exe files ( mono my.exe or chmod +x my.exe && ./my.exe ) or even shell scripts ( sh script.sh or chmod +x script.sh && ./script.sh ).

    @Melebius that works because Wine registers itself in binfmts when installed from the official Ubuntu package.

    Источник

  • Оцените статью
    Adblock
    detector