在 Linux 上运行C++可执行文件

Run C++ executable on Linux

本文关键字:C++ 可执行文件 运行 Linux      更新时间:2023-10-16

我正在尝试使用OpenCV在Linux中编译执行C++程序。

当我打字时

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

怎么了?

当你使用 -c 编译时,它会生成一个对象 (.o) 文件,而不是可执行文件。您需要在没有-c的情况下编译它才能制作可执行文件。

较大的C++程序将具有多个.cpp文件;对于每个.cpp文件,您将使用 -c 进行编译以生成它们各自的.o文件。然后,您将链接这些.o文件(运行g++而不-c)以生成最终的可执行文件。