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}")