“ bash: нет такого файла или каталога ” хотя файл существует [закрыт]

Я довольно новичок в Ubuntu, и недавно я создал файл .o, набрав терминал:

g++ -Wall -std=c++11 -c average.cpp -o average.o

Однако, когда я пытался выполнить файл .o, я получил это error:

bash: ./average: No such file or directory

, хотя у меня явно есть файл. Поэтому я решил ввести file average.o, что позволило мне это: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped.

Является ли проблема тем фактом, что она должна быть 32-битным исполняемым файлом, и если да, то как я могу изменить его на 32-битный исполняемый файл?

Edit: Так что я могу создать average, но когда я попытаюсь запустить его, я бы получил эту ошибку:

terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
Aborted (core dumped)

Edit 2: я смог исправить дамп ядра и дать разрешение на запуск моего файла, но теперь я получаю новую ошибку:

bash: ./average: cannot execute binary file: Exec format error.

Когда я сделал file averge, я получил это:

average: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped.

1
задан 7 March 2017 в 13:41

2 ответа

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

1
ответ дан 23 May 2018 в 00:53
g++ -Wall -std=c++11 -c average.cpp -o average.o

Создает файл average.o, а не average, поэтому вы получаете ошибку no such file

Первый файл ящика average, а затем попытайтесь выполнить его. [!d1 ]

Попробуйте следующее:

g++  -Wall -std=c++11 average.cpp -o average

И затем дайте разрешение:

   chmod +x average

, затем выполните его

./average
0
ответ дан 23 May 2018 в 00:53

Другие вопросы по тегам:

Похожие вопросы: