如何在Ubuntu中编译C ++控制台应用程序

时间:2016-03-14 16:54:36

标签: c++ opencv ubuntu compilation g++

我做了一个用C ++编写的简单控制台应用程序。它使用OpenCV(最新版本)来检测给定图像中的面部。现在我想在Ubuntu中编译这个应用程序。我已经看过几个页面要做(使用cmake,g ++ ...)但我不完全清楚编译整个项目的情况(不是简单的.cpp)。我想知道该怎么做。有没有这方面的教程?

谢谢!

2 个答案:

答案 0 :(得分:1)

link提供了一个很好的示例以及可帮助您编译基本openCV代码的屏幕截图。

基本上,无论您选择哪种方式进行编译,都必须提及openCV文件的路径。

使用终端进行编译时,您将使用类似下面的选项:

g++ -I/usr/local/include/opencv -I/usr/local/include/opencv2 -L/usr/local/lib/ -g -o binary  main.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_stitching

如果您打算编译多个文件,可以在上面的命令中包含它们来代替 main.cpp

-I后的位置提供头文件的位置。 -o选项用于设置输出二进制文件的名称。您将进一步探索g++命令中其他选项的重要性。

您只需在将上述命令用于应用程序时修改上述命令中的路径。

如果您有更大的应用程序,那么编写makefile或使用cmake会有意义。使用 Eclipse CodeBlocks 等IDE也可以在一定程度上简化操作。

进一步扩展您的问题可以更好地了解您的要求。

答案 1 :(得分:0)

您不会告诉您有关您的申请的任何信息。它的大小(万源线)?多少个文件?它是免费软件吗?有什么牌照?代码在哪里?

您可能应该写一个Makefile(如果您没有)或其他一些方法来构建它(您可以使用,但我不建议小项目,{ {1}}生成器,例如Makefilecmake ...);见this

你应该有一个automake文件记录你的应用程序以及如何构建它。

查看(至少是灵感......)到与您类似的现有免费软件的源代码中。

另外,不要忘记编译所有警告&调试信息(例如README如果使用GCC,也可能g++ -Wall -Wextra -g如果您使用C ++编写代码11)