我正在尝试使用OpenCV在Linux中编译执行C ++程序。
当我输入
SELECT r.progid
, r.batch
FROM student s
JOIN registers r
ON r.studentid = s.studentid
JOIN offers o
ON o.courseno = r.courseno
JOIN instructor i
ON i.instructorid = o.instructorid
WHERE i.instructorname = 'P M Jaat'
AND o.acadyear BETWEEN '2007-01-01' AND '2011-12-31';
正确生成g++ -c facedetection.cpp -std=c++11 -o facedetection
文件。请注意,我使用facedetection
因为我有错误建议这样做。
执行-std=c++11
后,我尝试使用chmod o+x facedetection
执行它,但是我收到错误:
./facedetection
有什么问题?
答案 0 :(得分:10)
使用-c
进行编译时,它会生成一个对象(.o
)文件,而不是可执行文件。您需要在没有-c
的情况下编译它以生成可执行文件。
较大的C ++程序将有多个.cpp
文件;对于每个.cpp
文件,您将使用-c
进行编译以生成各自的.o
文件。然后,您将链接这些.o
文件(运行g++
而不-c
)以生成最终的可执行文件。