在ubuntu中编译opencv程序

在ubuntu中编译opencv程序,ubuntu,opencv,compilation,makefile,Ubuntu,Opencv,Compilation,Makefile,我在Ubuntu 12.04上安装了OpenCV 2.4.2。我想知道如何编译在Ubuntu中用C++编写的OpenCV程序?还有,使用“make file”有什么好处?我如何用make文件编译?< /p> < p>一个MaFfile是一个简单的编译项目的方法,而不必每次都指定编译和链接指令。它被构造为一系列规则,格式如下: target:dependencies [tab] rule 其中规则必须以选项卡作为前缀 例如,如果您有一个包含两个源文件的项目,main.cpp和functions.

我在Ubuntu 12.04上安装了OpenCV 2.4.2。我想知道如何编译在Ubuntu中用C++编写的OpenCV程序?还有,使用“make file”有什么好处?我如何用make文件编译?< /p> < p>一个MaFfile是一个简单的编译项目的方法,而不必每次都指定编译和链接指令。它被构造为一系列规则,格式如下:

target:dependencies
[tab] rule
其中规则必须以选项卡作为前缀

例如,如果您有一个包含两个源文件的项目,main.cpp和functions.cpp,这两个文件都使用opencv代码,那么您的makefile可能包含如下内容:

executable: main.o functions.o
g++ -o executable `pkg-config --libs opencv` main.o functions.o

main.o: 
g++ `pkg-config --cflags opencv` -c main.cpp 

functions.o:
g++ `pkg-config --cflags opencv` -c functions.cpp
其中main.cpp只是您的主函数,您可以在其中多次调用functions.cpp中定义的函数。指令pkg-config--cflags/libs-opencv使用一个名为pkg-config的实用程序,该实用程序自动生成生成所需的编译器和链接器标志、路径和库。当然,如果您正在使用的库不支持pkg-config,那么您可以在makefile中手动指定这些,但正如opencv所做的那样,使用它是有意义的


要使用makefile进行编译,只需导航到保存源代码的目录,将makefile另存为“makefile”,并使用命令
make

编译makefile是一种编译项目的简单方法,无需每次指定编译和链接指令。它被构造为一系列规则,格式如下:

target:dependencies
[tab] rule
其中规则必须以选项卡作为前缀

例如,如果您有一个包含两个源文件的项目,main.cpp和functions.cpp,这两个文件都使用opencv代码,那么您的makefile可能包含如下内容:

executable: main.o functions.o
g++ -o executable `pkg-config --libs opencv` main.o functions.o

main.o: 
g++ `pkg-config --cflags opencv` -c main.cpp 

functions.o:
g++ `pkg-config --cflags opencv` -c functions.cpp
其中main.cpp只是您的主函数,您可以在其中多次调用functions.cpp中定义的函数。指令pkg-config--cflags/libs-opencv使用一个名为pkg-config的实用程序,该实用程序自动生成生成所需的编译器和链接器标志、路径和库。当然,如果您正在使用的库不支持pkg-config,那么您可以在makefile中手动指定这些,但正如opencv所做的那样,使用它是有意义的

要使用makefile进行编译,只需导航到保存源代码的目录,将makefile另存为“makefile”,然后使用命令
make

进行编译。这是一个常规提示:

您可以使用EclipseIDE来加速开发

这里有一篇文章解释了如何轻松完成这项工作:

这是一个常规提示:

您可以使用EclipseIDE来加速开发

这里有一篇文章解释了如何轻松完成这项工作: