2016-02-08 3 views
0

Я пытаюсь скомпилировать выполнение программы на C++ в Linux с помощью OpenCV.Запустить исполняемый файл C++ на Linux

Когда я типа

g++ -c facedetection.cpp -std=c++11 -o facedetection 

Файл facedetection правильно генерируется. Обратите внимание, что я использую -std=c++11, потому что у меня была ошибка, рекомендующая это сделать.

После выполнения chmod o+x facedetection я пытаюсь выполнить его с ./facedetection, но я получаю сообщение об ошибке:

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

Что не так?

ответ

10

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

В более крупных программах на С ++ будет содержаться более одного файла .cpp; для каждого файла .cpp, вы должны скомпилировать с помощью -c, чтобы сгенерировать их соответствующий файл .o. Тогда вы бы ссылки эти .o файлов (работает g++ без -c), чтобы сгенерировать окончательный исполняемый файл.

Смежные вопросы