我如何通过终端命令在 mac 上编译它
我正在使用 xcode 编译我的 opencv 项目,我有一些设置如下:
I am using xcode to compile my opencv project, and I have some settings as below:
HEADER_SEARCH_PATHS = /usr/local/include
LIBRARY_SEARCH_PATHS = /usr/local/lib
OTHER_LDFLAGS = -lopencv_calib3d -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videoio -lopencv_videostab
我想知道我应该通过终端命令而不是xcode的设置来写什么.
I want to know what shall I write by terminal command rather than setting of xcode.
推荐答案
如果你用 homebrew
安装了 OpenCV
并且你也安装了 pkgconfig
使用 homebrew
打包,该包可以告诉您自己需要的设置 - 比您猜测的要准确得多.
If you installed OpenCV
with homebrew
and you also installed the pkgconfig
package with homebrew
, the package can tell you the settings you need itself - far more accurately than you can guess them.
最简单的方法是让 pkgconfig
列出它知道的所有包:
The easy way is to ask pkgconfig
to list all the packages it knows about:
pkg-config --list-all | grep -i opencv
opencv OpenCV - Open Source Computer Vision Library
所以,现在你知道包名很简单opencv
,你可以像这样找到你需要的标志:
So, now you know the package name is plain and simple opencv
, and you can find the flags you need like this:
pkg-config --cflags --libs opencv
-I/usr/local/Cellar/opencv/2.4.12_2/include/opencv
-I/usr/local/Cellar/opencv/2.4.12_2/include
-L/usr/local/Cellar/opencv/2.4.12_2/lib
-lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab
这意味着您的编译和链接变得简单:
Which means your compilation and linking becomes simply:
g++ $(pkg-config --cflags --libs opencv) program.cpp -o program
如果您在 Makefile 中执行此操作,则需要将 $
符号加倍.
If you do that in a Makefile, you will need to double up the $
signs.
如果您的系统安装得不是很好,您可能需要自己找到pkgconfig
文件.所以你会这样做:
If your system is not so well installed, you may need to find the pkgconfig
file yourself. So you would do:
find /usr/local -name "opencv*pc"
/usr/local/Cellar/opencv/2.4.12_2/lib/pkgconfig/opencv.pc
然后您可以像这样访问该文件:
Then you can access that file specifically like this:
pkg-config --cflags --libs /usr/local/Cellar/opencv/2.4.12_2/lib/pkgconfig/opencv.pc
相关文章