mac-pcl-opencv:vcpkg,Homebrew,Flink,MacPorts

linux下有很方便的包管理器如:apt-get、yum,mac下也有类似的工具:Homebrew 和 Fink、MacPort。

Flink是直接编译好的二进制包,MacPorts是下载所有依赖库的源代码,本地编译安装所有依赖,Homebrew是尽量查找本地依赖库,然后下载包源代码编译安装。 

原本使用:

vcpkg2019.6:

https://codeload.github.com/microsoft/vcpkg/zip/2019.06

后来:

我使用的是最新的vcpkg-master,但是最新版的qhull会出错,后面会说怎么解决

 

Flink容易出现依赖库问题,MacPorts相当于自己独立构建一套,下载和编译的东西太多太麻烦,Homebrew的方式最合理。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew install gcc6

brew install glew

brew install glfw3

./bootstrap-vcpkg.sh

Extracting cmake...
Extracting cmake... done.
Downloading ninja...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   602    0   602    0     0    376      0 --:--:--  0:00:01 --:--:--   376
100 77284  100 77284    0     0   1869      0  0:00:41  0:00:41 --:--:--  2069
Downloading ninja... done.
Extracting ninja...
Extracting ninja... done.
-- The C compiler identification is AppleClang 9.0.0.9000039
-- The CXX compiler identification is GNU 6.5.0
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Check for working CXX compiler: /usr/local/bin/g++-6
-- Check for working CXX compiler: /usr/local/bin/g++-6 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/X/vcpkg-2019.06/toolsrc/build.rel
[64/64] Linking CXX executable vcpkg

./vcpkg integrate install

Applied user-wide integration for this vcpkg root.

CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=/Users/X/vcpkg-2019.06/scripts/buildsystems/vcpkg.cmake"

./vcpkg search pcl 

XdeMBP:vcpkg-2019.06 X$ ./vcpkg search pcl
pcl                  1.9.1-4          Point Cloud Library (PCL) is open source library for 2D/3D image and point clo...
pcl[openni2]                          OpenNI2 support for PCL
pcl[qt]                               Qt support for PCL
pcl[pcap]                             PCAP support for PCL
pcl[tools]                            Build PCL utilities
pcl[cuda]                             CUDA support for PCL
rpclib               2.2.1-1          a RPC library for C++, providing both a client and server implementation. It i...

If your library is not listed, please open an issue at and/or consider making a pull request:
    https://github.com/Microsoft/vcpkg/issues

./vcpkg install pcl

Your feedback is important to improve Vcpkg! Please take 3 minutes to complete our survey by running: vcpkg contact --survey
The following packages are already installed:
    pcl[core]:x64-osx
Starting package 1/1: pcl:x64-osx
Package pcl:x64-osx is already installed
Elapsed time for package pcl:x64-osx: 14 us

Total elapsed time: 27 us

The package pcl:x64-osx provides CMake targets:

    find_package(PCL CONFIG REQUIRED)
    target_link_libraries(main PRIVATE ${pcl_component})

qhull会出错,我使用的是最新的vcpkg-master

vcpkg2019.6:

https://codeload.github.com/microsoft/vcpkg/zip/2019.06

但是我把qhull换成了vcpkg-2019.6的,那个版本是:

qhull-qhull-v7.2.1.tar.gz

替换两个地方:

vcpkg/buildtrees/qhull/

vcpkg/ports/qhull/

这样qhull就能编译过去了

opencv:

XdeMBP:vcpkg-opencv X$ ./vcpkg search opencv
darknet[opencv]                       Build darknet with support for OpenCV
darknet[opencv-cuda]                  Build darknet with support for a CUDA-enabled OpenCV
opencv               3.4.3-9          computer vision library
opencv[opengl]                        opengl support for opencv
opencv[dnn]                           opencv_dnn module
opencv[ovis]                          opencv_ovis module
opencv[flann]                         opencv_flann module
opencv[sfm]                           opencv_sfm module
opencv[contrib]                       opencv_contrib module
opencv[cuda]                          CUDA support for opencv
opencv[ffmpeg]                        prebuilt ffmpeg support for opencv
opencv[ipp]                           Enable Intel Integrated Performance Primitives
opencv[tbb]                           Enable Intel Threading Building Blocks
opencv[qt]                            Qt GUI support for opencv
opencv[vtk]                           vtk support for opencv
opencv[gdcm]                          GDCM support for opencv
opencv[webp]                          WebP support for opencv
opencv[openexr]                       OpenEXR support for opencv
opencv[tiff]                          TIFF support for opencv
opencv[png]                           PNG support for opencv
opencv[jpeg]                          JPEG support for opencv
opencv[jasper]                        JPEG 2000 support for opencv
opencv[eigen]                         Eigen support for opencv
opencv[world]                         Compile to a single package support for opencv
opencv[nonfree]                       allow nonfree and unredistributable libraries
openmvg[opencv]                       opencv support for openmvg

If your library is not listed, please open an issue at and/or consider making a pull request:
    https://github.com/Microsoft/vcpkg/issues
XdeMBP:vcpkg-opencv X$ ./vcpkg install opencv[opengl][flann][sfm][contrib][tbb][tiff][png][jpeg][jasper][eigen][nonfree]
The following packages will be built and installed:
  * eigen3[core]:x64-osx
  * libjpeg-turbo[core]:x64-osx
  * liblzma[core]:x64-osx
  * libpng[core]:x64-osx
    opencv[core,eigen,flann,jpeg,opengl,png,tiff]:x64-osx
  * opengl[core]:x64-osx
  * tiff[core]:x64-osx
  * zlib[core]:x64-osx
Additional packages (*) will be modified to complete this operation.
Starting package 1/8: eigen3:x64-osx
Building package eigen3[core]:x64-osx...
./vcpkg install opencv[opengl,flann,sfm,contrib,tbb,tiff,png,jpeg,jasper,eigen,nonfree]

freeglut 

Could NOT find X11 (missing: X11_X11_INCLUDE_PATH X11_X11_LIB)

These can be installed on Ubuntu systems via apt-get install libxi-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxrandr-dev libxxf86vm-dev
On macOS Xquartz is required.
brew install rpm
rpm -qa | grep libX11

这个错误一直没解决,所以我直接

./vcpkg install opencv

编译成功,没有添加很多附加编译项

The following packages will be built and installed:
    opencv[core,eigen,flann,jpeg,opengl,png,tiff]:x64-osx
Starting package 1/1: opencv:x64-osx
Building package opencv[core,eigen,flann,jpeg,opengl,png,tiff]:x64-osx...
-- Using cached /Users/yangninghua/vcpkg-opencv/vcpkg-opencv/downloads/opencv-opencv-3.4.3.tar.gz
-- Using source at /Users/X/vcpkg-opencv/vcpkg-opencv/buildtrees/opencv/src/3.4.3-6bc372f345
-- Configuring x64-osx-dbg
-- Configuring x64-osx-rel
-- Building x64-osx-dbg
-- Building x64-osx-rel
-- Performing post-build validation
-- Performing post-build validation done
Building package opencv[core,eigen,flann,jpeg,opengl,png,tiff]:x64-osx... done
Installing package opencv[core,eigen,flann,jpeg,opengl,png,tiff]:x64-osx...
Installing package opencv[core,eigen,flann,jpeg,opengl,png,tiff]:x64-osx... done
Elapsed time for package opencv:x64-osx: 11.49 min

Total elapsed time: 11.49 min

The package opencv provides CMake integration:

    find_package(OpenCV REQUIRED)
    target_include_directories(main PRIVATE ${OpenCV_INCLUDE_DIRS})
    target_link_libraries(main PRIVATE ${OpenCV_LIBS})

还遇到一个错误:

因此,最后我通过注释PCLConfig.cmake中的以下行来解决该问题:

342行:
#list(APPEND PCL_${COMPONENT}_LIBRARIES "${${LIB}_LIBRARIES}")

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值