在 Linux 上运行 C++ 可执行文件
Posted
技术标签:
【中文标题】在 Linux 上运行 C++ 可执行文件【英文标题】:Run C++ executable on Linux 【发布时间】: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
怎么了?
【问题讨论】:
【参考方案1】:当您使用-c
编译时,它会生成一个对象 (.o
) 文件,而不是可执行文件。您需要在没有-c
的情况下编译它才能生成可执行文件。
较大的 C++ 程序将有多个.cpp
文件;对于每个.cpp
文件,您将使用-c
进行编译以生成它们各自的.o
文件。然后您将链接这些.o
文件(运行g++
而没有-c
)以生成最终的可执行文件。
【讨论】:
以上是关于在 Linux 上运行 C++ 可执行文件的主要内容,如果未能解决你的问题,请参考以下文章
linux C++可执行文件运行后,为什么无法被替换?(Text file busy)“文件被锁定”(File Locking)“文件占用”(File In Use)