本地安装时如何包括和使用openCV库?

本地安装时如何包括和使用openCV库?,opencv,compilation,g++,Opencv,Compilation,G++,我想在OSX的本地文件夹中安装OpenCV版本,而不覆盖旧的可执行文件所需的旧安装 我遵循[这些说明][1],特别是使用命令行部分,使用CMake从源代码构建OpenCV 所以基本上我: 使用git下载了源代码,现在它位于openCV子文件夹中 创建了一个新目录cmake\u bin\u dir 输入cmake_bin_dir并创建另一个子目录instDir 从cmake_bin_dir我启动了命令cmake-D cmake_BUILD_TYPE=DEBUG-D cmake_INSTALL_PR

我想在OSX的本地文件夹中安装OpenCV版本,而不覆盖旧的可执行文件所需的旧安装

我遵循[这些说明][1],特别是使用命令行部分,使用CMake从源代码构建OpenCV

所以基本上我:

  • 使用git下载了源代码,现在它位于openCV子文件夹中
  • 创建了一个新目录cmake\u bin\u dir
  • 输入cmake_bin_dir并创建另一个子目录instDir
  • 从cmake_bin_dir我启动了命令
    cmake-D cmake_BUILD_TYPE=DEBUG-D cmake_INSTALL_PREFIX=/my/home/Downloads/openCVProject/cmake_bin_dir/instDir/。/openCV/
  • 从同一个目录中,我首先启动了
    make
    ,然后启动了
    sudomake安装
    。这在cmake\u bin\u dir/instDir目录中创建了
    *.dylib
    文件
  • 为了测试安装,我创建了我的项目目录(位于
    cmake\u bin\u dir
    的同一级别)

    我尝试使用以下命令编译名为test.cpp的文件:

        g++ -std=c++11 -I../cmake_bin_dir/ -I../openCV/include -I../openCV/modules/core/include/ \
    -I../openCV/modules/calib3d/include/ -I../openCV/modules/features2d/include \
    -I../openCV/modules/flann/include -I../openCV/modules/dnn/include -I../openCV/modules/highgui/include/ \
    -I../openCV/modules/imgcodecs/include -I../openCV/modules/videoio/include -I../openCV/modules/imgproc/include \
    -I../openCV/modules/ml/include -I../openCV/modules/objdetect/include -I../openCV/modules/photo/include \
    -I../openCV/modules/shape/include -I../openCV/modules/stitching/include -I../openCV/modules/superres/include \
    -I../openCV/modules/video/include -I../openCV/modules/videostab/include test.cpp -o test.o
    
    我一个接一个地添加include,因为每次都会出现编译错误。 但是,现在我得到一个链接错误:

    Undefined symbols for architecture x86_64:
      "cv::String::deallocate()", referenced from:
          cv::String::~String() in test-afd12e.o
          cv::String::operator=(cv::String const&) in test-afd12e.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    
    所以我的问题是如何使用本地安装的OpenCV库编译我的程序和其他项目?
    [1] :

    好的,我发现了错误。如果有人遇到同样的问题,请尝试在终端上执行此操作:

    export DYLD_LIBRARY_PATH=../your/path/lib/:$DYLD_LIBRARY_PATH
    
    在我的情况下,我执行了:

    export DYLD_LIBRARY_PATH=../cmake_bin_dir/lib/:$DYLD_LIBRARY_PATH
    
    我还创建了一个包含以下内容的
    Makefile

    CPP = g++ -std=c++11
    
    # OpenCV trunk
    CPPFLAGS = -L../cmake_bin_dir/lib/ \
           -I../cmake_bin_dir/include \
               -I../cmake_bin_dir/ -I../openCV/include -I../openCV/modules/core/include/ \
               -I../openCV/modules/calib3d/include/ \
               -I../openCV/modules/features2d/include \
               -I../openCV/modules/flann/include -I../openCV/modules/dnn/include -I../openCV/modules/highgui/include/ \
               -I../openCV/modules/imgcodecs/include -I../openCV/modules/videoio/include -I../openCV/modules/imgproc/include \
           -I../openCV/modules/ml/include -I../openCV/modules/objdetect/include -I../openCV/modules/photo/include \
           -I../openCV/modules/shape/include -I../openCV/modules/stitching/include -I../openCV/modules/superres/include \
           -I../openCV/modules/video/include -I../openCV/modules/videostab/include \
               `pkg-config --cflags --libs ../cmake_bin_dir/instDir/lib/pkgconfig/opencv.pc`
    
    # Opencv 2.4.8
    #CPPFLAGS = -L/home/krystof/libs/opencv-2.4.8/release/installed/libs \
           -I/home/krystof/libs/opencv-2.4.8/release/installed/include
    
    all: test
    
    test: test.cpp
        $(CPP) $(CPPFLAGS) $^ -o $@
    
    现在执行
    make
    应该使用本地openCV版本构建程序