【问题标题】:Run C++ executable on Linux在 Linux 上运行 C++ 可执行文件
【发布时间】:2016-02-08 17:15:24
【问题描述】:

我正在尝试使用 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++ opencv c++11 g++


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 2014-02-09
      • 2018-09-26
      • 2018-02-21
      • 1970-01-01
      • 1970-01-01
      • 2020-11-23
      • 1970-01-01
      • 2021-02-14
      相关资源
      最近更新 更多