【问题标题】:How do I compile this on mac by terminal command如何通过终端命令在 mac 上编译它
【发布时间】:2016-05-03 04:07:50
【问题描述】:

我正在使用 xcode 编译我的 opencv 项目,我有一些设置如下:

    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的设置来写什么。

【问题讨论】:

    标签: c++ macos opencv compilation


    【解决方案1】:

    如果您使用homebrew 安装了OpenCV,并且还使用homebrew 安装了pkgconfig 包,则该包可以告诉您自己需要的设置 - 比您猜测的要准确得多。

    简单的方法是让pkgconfig列出它知道的所有包:

    pkg-config --list-all | grep -i opencv
    
    opencv                 OpenCV - Open Source Computer Vision Library
    

    所以,现在你知道包名很简单opencv,你可以像这样找到你需要的标志:

    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
    

    这意味着您的编译和链接变得简单:

    g++ $(pkg-config --cflags --libs opencv) program.cpp -o program
    

    如果您在 Makefile 中执行此操作,则需要将 $ 符号加倍。

    如果您的系统没有安装好,您可能需要自己查找pkgconfig 文件。所以你会这样做:

    find /usr/local -name "opencv*pc"
    /usr/local/Cellar/opencv/2.4.12_2/lib/pkgconfig/opencv.pc
    

    然后您可以像这样访问该文件:

    pkg-config --cflags --libs /usr/local/Cellar/opencv/2.4.12_2/lib/pkgconfig/opencv.pc
    

    【讨论】:

    • 哇,你的回答对我很有用,我从来不知道 pkgconfig。
    【解决方案2】:

    你可以使用:

    g++ -I ${HEADER_SEARCH_PATHS} -L ${LIBRARY_SEARCH_PATHS} ${OTHER_LDFLAGS} ${SOURCE_FILES}
    

    【讨论】:

      猜你喜欢
      • 2013-12-18
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      相关资源
      最近更新 更多