运行 Linux 上的 C++ 可执行文件
Run C++ executable on Linux
我正在尝试使用 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
文件。然后你会 link 这些 .o
文件(运行 g++
没有 -c
)来生成最终的可执行文件。
我正在尝试使用 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
文件。然后你会 link 这些 .o
文件(运行 g++
没有 -c
)来生成最终的可执行文件。