【发布时间】:2012-04-09 20:22:03
【问题描述】:
我正在使用Learning OpenCV book 学习 OpenCV。
我在编译代码时面临的一个问题是我必须编写一个很长的命令来编译和获取可执行文件。
这是我正在使用的命令
g++ `pkg-config –cflags opencv` file_name.cpp -o output_file `pkg-config –libs opencv`
我不是 Make 专家,但我认为我可以避免使用 make 编写那个长命令。
在此之前,我应该解释一下我的工作流程。我在我的主目录 (~/opencv/) 中创建了一个名为 opencv 的目录。我正在逐节阅读本书,并将示例或练习编码到该目录中的新 cpp 源代码文件中。 所以我事先不知道文件的名称。
现在我想做的是,
假设我在opencv 目录中编写了一个名为facedetect.cpp 的新文件,如果我像这样调用make
make facedetect
那我想让make为我执行下面的命令
g++ `pkg-config --cflags opencv` facedetect.cpp -o facedetect `pkg-config --libs opencv`
这样每当我创建一个名为 abc.cpp 的新文件时,我都会执行 make abc
这样我就可以跑了
$ ./abc
在我的命令行测试我的 abc.cpp
请提供那个 make 文件,这样我就可以省去每次输入那个长命令的挫败感。
PS:我已经在 Google 上寻求帮助,并在使用 CMake 时找到了 this,但我不明白它的作用。还请解释我如何使用 CMake 来完成相同的任务。
【问题讨论】:
标签: opencv compilation makefile cmake