在安裝opencv3.2.0的過程中,我遇到了好多坑,特此記錄一下。建議安裝了Anaconda的朋友們找一找網上的方法,直接利用它進行安裝,可以避免很多坑。
下面結合參考的網上的教程,說一說我的安裝過程和解決辦法。
一、準備工作
提前下載下傳好三個檔案,https://github.com/hanxuan123/opencv3.2/tree/master/all,這裡給出網上分享的一個連結(感謝)。包括opencv-3.2.0、ippicv_linux_20151201.tgz、opencv_contrib-3.2.0
二、安裝依賴檔案
這裡每個人需要裝的檔案可能不同,我是根據https://blog.csdn.net/yifa3588/article/details/78284794這篇部落格中給的依賴檔案先安裝的,之後再根據CMake的報告添加缺少的依賴檔案
在終端輸入
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394--dev
三、編譯
3.1
首先将第一步中下載下傳好的opencv-3.2.0解壓到一個新的檔案夾中,我的新檔案夾命名為opencv3,opencv_contrib-3.2解壓到opencv-3.2.0中,再在opencv-3.2.0中建立一個檔案夾,命名為build,并在該檔案下編譯。
3.2
3.3
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/software/opencv3/opencv-./opencv_contrib-./modules/ .. #這裡根據自己的路徑調整, 注意最後的兩個點
注意:這是重要的一步,這一步可能會出現各種各樣的問題,要根據所遇到的問題,對症下藥~在此附上我遇到的一些問題和解決辦法,僅供參考。
...
Checking for module 'gstreamer-base-1.0'
-- No package 'gstreamer-base-1.0' found
-- Checking for module 'gstreamer-video-1.0'
-- No package 'gstreamer-video-1.0' found
-- Checking for module 'gstreamer-app-1.0'
-- No package 'gstreamer-app-1.0' found
-- Checking for module 'gstreamer-riff-1.0'
-- No package 'gstreamer-riff-1.0' found
-- Checking for module 'gstreamer-pbutils-1.0'
-- No package 'gstreamer-pbutils-1.0' found
-- Checking for module 'gstreamer-base-0.10'
-- Found gstreamer-base-., version .
-- Checking for module 'gstreamer-video-0.10'
-- No package 'gstreamer-video-0.10' found
-- Checking for module 'gstreamer-app-0.10'
-- No package 'gstreamer-app-0.10' found
-- Checking for module 'gstreamer-riff-0.10'
-- No package 'gstreamer-riff-0.10' found
-- Checking for module 'gstreamer-pbutils-0.10'
-- No package 'gstreamer-pbutils-0.10' found
-- Looking for linux/videodev.h
-- Looking for linux/videodev.h - not found
-- Looking for linux/videodev2.h
-- Looking for linux/videodev2.h - found
-- Looking for sys/videoio.h
-- Looking for sys/videoio.h - not found
-- Checking for module 'libavresample'
-- No package 'libavresample' found
-- Checking for module 'libgphoto2'
-- No package 'libgphoto2' found
-- found IPP (ICV version): . [.]
-- at: /home/elsa/software/opencv3/opencv-./build/rdparty/ippicv/ippicv_lnx
-- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
-- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
-- Could NOT find Atlas (missing: Atlas_CBLAS_INCLUDE_DIR Atlas_CLAPACK_INCLUDE_DIR Atlas_CBLAS_LIBRARY Atlas_BLAS_LIBRARY Atlas_LAPACK_LIBRARY)
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
-- Could NOT find Matlab (missing: MATLAB_MEX_SCRIPT MATLAB_INCLUDE_DIRS MATLAB_ROOT_DIR MATLAB_LIBRARIES MATLAB_LIBRARY_DIRS MATLAB_MEXEXT MATLAB_ARCH MATLAB_BIN)
-- VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file
CMake Error at cmake/OpenCVModule.cmake:295 (message):
No extra modules found in folder:
/home/software/opencv3/opencv3.2.0/opencv_contrib-3.2.0/modules
Please provide path to 'opencv_contrib/modules' folder.
Call Stack (most recent call first):
modules/CMakeLists.txt:7 (ocv_glob_modules)
......
--
-- Configuring incomplete, errors occurred!
See also "/home/elsa/software/opencv3/opencv-3.2.0/build/CMakeFiles/CMakeOutput.log".
See also "/home/elsa/software/opencv3/opencv-3.2.0/build/CMakeFiles/CMakeError.log".
出現這種情況,基本上就是失敗了,要根據提示挨個填坑了。
首先是安裝缺少的依賴包
根據這些提示,
sudo apt-get install \
libgstreamer0-dev \
libgstreamer-plugins-base0-dev \
libgstreamer1-dev \
libgstreamer-plugins-base1-dev \
gstreamer-plugins-base-devel \
libgphoto2-dev \
當然,最好将cmake更新一下,不然也可能出現錯誤。
sudo apt-get install cmake
除此之外,還可能存在ippicv_linux_20151201.tgz下載下傳失敗的問題。這時候可以将第一步中我們提前下載下傳好的該檔案,移動到報告中提示的路徑。
例如,報告稱/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/找不到該檔案,我們就可以在新的終端中進行如下操作
sudo mv ippicv_linux_20151201.tgz /opencv-./rdparty/ippicv/downloads/linux-b791a6eac9ed78d32a7666804320e
之後可以建立終端,重新進行cmake
如果提示
-- Configuring done
-- Generating done
則可以進行下一步
依次進行
sudo make
sudo make install
四、測試
這裡我在python2.7.12下測試才成功,其他版本下測試 均提示找不到cv2 module
測試如下:
XXX:~$ python
Python |Anaconda, Inc.| (default, Oct , ::)
[GCC ] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line , in <module>
ModuleNotFoundError: No module named 'cv2'
>>> quit()
XXXXX:~$ source activate python2
(python2) xxxxxxx:~$ python
Python |Anaconda, Inc.| (default, Mar , ::)
[GCC ] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line , in <module>
ImportError: No module named cv2
>>>
(python2) xxxxxxxx:~$ sudo python
[sudo] xxx的密碼:
Python (default, Dec , ::)
[GCC ] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line , in <module>
ImportError: /lib/x86_64-linux-gnu/libz.so: version `ZLIB_1' not found (required by /home/software/anaconda3/lib/libpng16.so.16)
>>>
根據提示,缺少了ZLIB,參考這裡給的幫助
可以下載下傳Zlib,然後依次執行:
tar -xvf ~/Downloads/zlib-.tar.gz
cd zlib-
sudo -s
./configure; make; make install
cd /lib/x86_64-linux-gnu
ln -s -f /usr/local/lib/libz.so/lib libz.so
cd ~
rm -rf zlib-
附上下載下傳位址戳這裡~
過程如下:
XXXX:~$ tar -xvf ~/下載下傳/zlib-.tar.gz
zlib-/
zlib-/adler32.c
zlib-/amiga/
zlib-/ChangeLog
zlib-/CMakeLists.txt
zlib-/compress.c
zlib-/configure
zlib-/contrib/
zlib-/crc32.c
zlib-/crc32.h
zlib-/deflate.c
zlib-/deflate.h
zlib-/doc/
zlib-/examples/
zlib-/FAQ
zlib-/gzclose.c
zlib-/gzguts.h
zlib-/gzlib.c
zlib-/gzread.c
zlib-/gzwrite.c
zlib-/INDEX
zlib-/infback.c
zlib-/inffast.c
zlib-/inffast.h
zlib-/inffixed.h
zlib-/inflate.c
zlib-/inflate.h
zlib-/inftrees.c
zlib-/inftrees.h
zlib-/make_vms.com
zlib-/Makefile
zlib-/Makefile.in
zlib-/msdos/
zlib-/nintendods/
zlib-/old/
zlib-/os400/
zlib-/qnx/
zlib-/README
zlib-/test/
zlib-/treebuild.xml
zlib-/trees.c
zlib-/trees.h
zlib-/uncompr.c
zlib-/watcom/
zlib-/win32/
zlib-/zconf.h
zlib-/zconf.h.cmakein
zlib-/zconf.h.in
zlib-/zlib
zlib-/zlib.pdf
zlib-/zlib.h
zlib-/zlib.map
zlib-/zlib.pc.cmakein
zlib-/zlib.pc.in
zlib-/zlib2ansi
zlib-/zutil.c
zlib-/zutil.h
zlib-/win32/DLL_FAQ.txt
zlib-/win32/Makefile.bor
zlib-/win32/Makefile.gcc
zlib-/win32/Makefile.msc
zlib-/win32/README-WIN32.txt
zlib-/win32/VisualC.txt
zlib-/win32/zlib.def
zlib-/win32/zlib1.rc
zlib-/watcom/watcom_f.mak
zlib-/watcom/watcom_l.mak
zlib-/test/example.c
zlib-/test/infcover.c
zlib-/test/minigzip.c
zlib-/qnx/package.qpg
zlib-/os400/bndsrc
zlib-/os400/make.sh
zlib-/os400/README400
zlib-/os400/zlib.inc
zlib-/old/descrip.mms
zlib-/old/Makefile.emx
zlib-/old/Makefile.riscos
zlib-/old/os2/
zlib-/old/README
zlib-/old/visual-basic.txt
zlib-/old/os2/Makefile.os2
zlib-/old/os2/zlib.def
zlib-/nintendods/Makefile
zlib-/nintendods/README
zlib-/msdos/Makefile.bor
zlib-/msdos/Makefile.dj2
zlib-/msdos/Makefile.emx
zlib-/msdos/Makefile.msc
zlib-/msdos/Makefile.tc
zlib-/examples/enough.c
zlib-/examples/fitblk.c
zlib-/examples/gun.c
zlib-/examples/gzappend.c
zlib-/examples/gzjoin.c
zlib-/examples/gzlog.c
zlib-/examples/gzlog.h
zlib-/examples/README.examples
zlib-/examples/zlib_how.html
zlib-/examples/zpipe.c
zlib-/examples/zran.c
zlib-/doc/algorithm.txt
zlib-/doc/rfc1950.txt
zlib-/doc/rfc1951.txt
zlib-/doc/rfc1952.txt
zlib-/doc/txtvsbin.txt
zlib-/contrib/ada/
zlib-/contrib/amd64/
zlib-/contrib/asm686/
zlib-/contrib/blast/
zlib-/contrib/delphi/
zlib-/contrib/dotzlib/
zlib-/contrib/gcc_gvmat64/
zlib-/contrib/infback9/
zlib-/contrib/inflate86/
zlib-/contrib/iostream/
zlib-/contrib/iostream2/
zlib-/contrib/iostream3/
zlib-/contrib/masmx64/
zlib-/contrib/masmx86/
zlib-/contrib/minizip/
zlib-/contrib/pascal/
zlib-/contrib/puff/
zlib-/contrib/README.contrib
zlib-/contrib/testzlib/
zlib-/contrib/untgz/
zlib-/contrib/vstudio/
zlib-/contrib/vstudio/readme.txt
zlib-/contrib/vstudio/vc10/
zlib-/contrib/vstudio/vc11/
zlib-/contrib/vstudio/vc12/
zlib-/contrib/vstudio/vc14/
zlib-/contrib/vstudio/vc9/
zlib-/contrib/vstudio/vc9/miniunz.vcproj
zlib-/contrib/vstudio/vc9/minizip.vcproj
zlib-/contrib/vstudio/vc9/testzlib.vcproj
zlib-/contrib/vstudio/vc9/testzlibdll.vcproj
zlib-/contrib/vstudio/vc9/zlib.rc
zlib-/contrib/vstudio/vc9/zlibstat.vcproj
zlib-/contrib/vstudio/vc9/zlibvc.def
zlib-/contrib/vstudio/vc9/zlibvc.sln
zlib-/contrib/vstudio/vc9/zlibvc.vcproj
zlib-/contrib/vstudio/vc14/miniunz.vcxproj
zlib-/contrib/vstudio/vc14/minizip.vcxproj
zlib-/contrib/vstudio/vc14/testzlib.vcxproj
zlib-/contrib/vstudio/vc14/testzlibdll.vcxproj
zlib-/contrib/vstudio/vc14/zlib.rc
zlib-/contrib/vstudio/vc14/zlibstat.vcxproj
zlib-/contrib/vstudio/vc14/zlibvc.def
zlib-/contrib/vstudio/vc14/zlibvc.sln
zlib-/contrib/vstudio/vc14/zlibvc.vcxproj
zlib-/contrib/vstudio/vc12/miniunz.vcxproj
zlib-/contrib/vstudio/vc12/minizip.vcxproj
zlib-/contrib/vstudio/vc12/testzlib.vcxproj
zlib-/contrib/vstudio/vc12/testzlibdll.vcxproj
zlib-/contrib/vstudio/vc12/zlib.rc
zlib-/contrib/vstudio/vc12/zlibstat.vcxproj
zlib-/contrib/vstudio/vc12/zlibvc.def
zlib-/contrib/vstudio/vc12/zlibvc.sln
zlib-/contrib/vstudio/vc12/zlibvc.vcxproj
zlib-/contrib/vstudio/vc11/miniunz.vcxproj
zlib-/contrib/vstudio/vc11/minizip.vcxproj
zlib-/contrib/vstudio/vc11/testzlib.vcxproj
zlib-/contrib/vstudio/vc11/testzlibdll.vcxproj
zlib-/contrib/vstudio/vc11/zlib.rc
zlib-/contrib/vstudio/vc11/zlibstat.vcxproj
zlib-/contrib/vstudio/vc11/zlibvc.def
zlib-/contrib/vstudio/vc11/zlibvc.sln
zlib-/contrib/vstudio/vc11/zlibvc.vcxproj
zlib-/contrib/vstudio/vc10/miniunz.vcxproj
zlib-/contrib/vstudio/vc10/miniunz.vcxproj.filters
zlib-/contrib/vstudio/vc10/minizip.vcxproj
zlib-/contrib/vstudio/vc10/minizip.vcxproj.filters
zlib-/contrib/vstudio/vc10/testzlib.vcxproj
zlib-/contrib/vstudio/vc10/testzlib.vcxproj.filters
zlib-/contrib/vstudio/vc10/testzlibdll.vcxproj
zlib-/contrib/vstudio/vc10/testzlibdll.vcxproj.filters
zlib-/contrib/vstudio/vc10/zlib.rc
zlib-/contrib/vstudio/vc10/zlibstat.vcxproj
zlib-/contrib/vstudio/vc10/zlibstat.vcxproj.filters
zlib-/contrib/vstudio/vc10/zlibvc.def
zlib-/contrib/vstudio/vc10/zlibvc.sln
zlib-/contrib/vstudio/vc10/zlibvc.vcxproj
zlib-/contrib/vstudio/vc10/zlibvc.vcxproj.filters
zlib-/contrib/untgz/Makefile
zlib-/contrib/untgz/Makefile.msc
zlib-/contrib/untgz/untgz.c
zlib-/contrib/testzlib/testzlib.c
zlib-/contrib/testzlib/testzlib.txt
zlib-/contrib/puff/Makefile
zlib-/contrib/puff/puff.c
zlib-/contrib/puff/puff.h
zlib-/contrib/puff/pufftest.c
zlib-/contrib/puff/README
zlib-/contrib/puff/zeros.raw
zlib-/contrib/pascal/example.pas
zlib-/contrib/pascal/readme.txt
zlib-/contrib/pascal/zlibd32.mak
zlib-/contrib/pascal/zlibpas.pas
zlib-/contrib/minizip/configure.ac
zlib-/contrib/minizip/crypt.h
zlib-/contrib/minizip/ioapi.c
zlib-/contrib/minizip/ioapi.h
zlib-/contrib/minizip/iowin32.c
zlib-/contrib/minizip/iowin32.h
zlib-/contrib/minizip/make_vms.com
zlib-/contrib/minizip/Makefile
zlib-/contrib/minizip/Makefile.am
zlib-/contrib/minizip/miniunz.c
zlib-/contrib/minizip/miniunzip
zlib-/contrib/minizip/minizip
zlib-/contrib/minizip/minizip.c
zlib-/contrib/minizip/minizip.pc.in
zlib-/contrib/minizip/MiniZip64_Changes.txt
zlib-/contrib/minizip/MiniZip64_info.txt
zlib-/contrib/minizip/mztools.c
zlib-/contrib/minizip/mztools.h
zlib-/contrib/minizip/unzip.c
zlib-/contrib/minizip/unzip.h
zlib-/contrib/minizip/zip.c
zlib-/contrib/minizip/zip.h
zlib-/contrib/masmx86/bld_ml32.bat
zlib-/contrib/masmx86/inffas32.asm
zlib-/contrib/masmx86/match686.asm
zlib-/contrib/masmx86/readme.txt
zlib-/contrib/masmx64/bld_ml64.bat
zlib-/contrib/masmx64/gvmat64.asm
zlib-/contrib/masmx64/inffas8664.c
zlib-/contrib/masmx64/inffasx64.asm
zlib-/contrib/masmx64/readme.txt
zlib-/contrib/iostream3/README
zlib-/contrib/iostream3/test.cc
zlib-/contrib/iostream3/TODO
zlib-/contrib/iostream3/zfstream.cc
zlib-/contrib/iostream3/zfstream.h
zlib-/contrib/iostream2/zstream.h
zlib-/contrib/iostream2/zstream_test.cpp
zlib-/contrib/iostream/test.cpp
zlib-/contrib/iostream/zfstream.cpp
zlib-/contrib/iostream/zfstream.h
zlib-/contrib/inflate86/inffas86.c
zlib-/contrib/inflate86/inffast.S
zlib-/contrib/infback9/infback9.c
zlib-/contrib/infback9/infback9.h
zlib-/contrib/infback9/inffix9.h
zlib-/contrib/infback9/inflate9.h
zlib-/contrib/infback9/inftree9.c
zlib-/contrib/infback9/inftree9.h
zlib-/contrib/infback9/README
zlib-/contrib/gcc_gvmat64/gvmat64.S
zlib-/contrib/dotzlib/DotZLib/
zlib-/contrib/dotzlib/DotZLib.build
zlib-/contrib/dotzlib/DotZLib.chm
zlib-/contrib/dotzlib/DotZLib.sln
zlib-/contrib/dotzlib/LICENSE_1_0.txt
zlib-/contrib/dotzlib/readme.txt
zlib-/contrib/dotzlib/DotZLib/AssemblyInfo.cs
zlib-/contrib/dotzlib/DotZLib/ChecksumImpl.cs
zlib-/contrib/dotzlib/DotZLib/CircularBuffer.cs
zlib-/contrib/dotzlib/DotZLib/CodecBase.cs
zlib-/contrib/dotzlib/DotZLib/Deflater.cs
zlib-/contrib/dotzlib/DotZLib/DotZLib.cs
zlib-/contrib/dotzlib/DotZLib/DotZLib.csproj
zlib-/contrib/dotzlib/DotZLib/GZipStream.cs
zlib-/contrib/dotzlib/DotZLib/Inflater.cs
zlib-/contrib/dotzlib/DotZLib/UnitTests.cs
zlib-/contrib/delphi/readme.txt
zlib-/contrib/delphi/ZLib.pas
zlib-/contrib/delphi/ZLibConst.pas
zlib-/contrib/delphi/zlibd32.mak
zlib-/contrib/blast/blast.c
zlib-/contrib/blast/blast.h
zlib-/contrib/blast/Makefile
zlib-/contrib/blast/README
zlib-/contrib/blast/test.pk
zlib-/contrib/blast/test.txt
zlib-/contrib/asm686/match.S
zlib-/contrib/asm686/README
zlib-/contrib/amd64/amd64-match.S
zlib-/contrib/ada/buffer_demo.adb
zlib-/contrib/ada/mtest.adb
zlib-/contrib/ada/read.adb
zlib-/contrib/ada/readme.txt
zlib-/contrib/ada/test.adb
zlib-/contrib/ada/zlib-streams.adb
zlib-/contrib/ada/zlib-streams.ads
zlib-/contrib/ada/zlib-thin.adb
zlib-/contrib/ada/zlib-thin.ads
zlib-/contrib/ada/zlib.adb
zlib-/contrib/ada/zlib.ads
zlib-/contrib/ada/zlib.gpr
zlib-/amiga/Makefile.pup
zlib-/amiga/Makefile.sas
XXXX:~$ cd zlib-
XXXX:~/zlib-$ sudo -s
[sudo] XXXX 的密碼:
[email protected]:~/zlib-# ./configure; make; make install
Checking for gcc...
Checking for shared library support...
Building shared library libz.so with gcc.
Checking for size_t... Yes.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for strerror... Yes.
Checking for unistd.h... Yes.
Checking for stdarg.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for attribute(visibility) support... Yes.
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -I. -c -o example.o test/example.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o adler32.o adler32.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o crc32.o crc32.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o deflate.o deflate.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o infback.o infback.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o inffast.o inffast.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o inflate.o inflate.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o inftrees.o inftrees.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o trees.o trees.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o zutil.o zutil.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o compress.o compress.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o uncompr.o uncompr.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o gzclose.o gzclose.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o gzlib.o gzlib.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o gzread.o gzread.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -c -o gzwrite.o gzwrite.c
ar rc libz.a adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o example example.o -L. libz.a
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -I. -c -o minigzip.o test/minigzip.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o minigzip minigzip.o -L. libz.a
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/adler32.o adler32.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/crc32.o crc32.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/deflate.o deflate.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/infback.o infback.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/inffast.o inffast.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/inflate.o inflate.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/inftrees.o inftrees.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/trees.o trees.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/zutil.o zutil.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/compress.o compress.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/uncompr.o uncompr.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/gzclose.o gzclose.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/gzlib.o gzlib.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/gzread.o gzread.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -DPIC -c -o objs/gzwrite.o gzwrite.c
gcc -shared -Wl,-soname,libz.so,--version-script,zlib.map -O3 -fPIC -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o libz.so adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc
rm -f libz.so libz.so
ln -s libz.so libz.so
ln -s libz.so libz.so
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o examplesh example.o -L. libz.so
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o minigzipsh minigzip.o -L. libz.so
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS= -c -o example64.o test/example.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o example64 example64.o -L. libz.a
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS= -c -o minigzip64.o test/minigzip.c
gcc -O3 -D_LARGEFILE64_SOURCE= -DHAVE_HIDDEN -o minigzip64 minigzip64.o -L. libz.a
rm -f /usr/local/lib/libz.a
cp libz.a /usr/local/lib
chmod /usr/local/lib/libz.a
cp libz.so /usr/local/lib
chmod /usr/local/lib/libz.so
rm -f /usr/local/share/man/man3/zlib
cp zlib /usr/local/share/man/man3
chmod /usr/local/share/man/man3/zlib
rm -f /usr/local/lib/pkgconfig/zlib.pc
cp zlib.pc /usr/local/lib/pkgconfig
chmod /usr/local/lib/pkgconfig/zlib.pc
rm -f /usr/local/include/zlib.h /usr/local/include/zconf.h
cp zlib.h zconf.h /usr/local/include
chmod /usr/local/include/zlib.h /usr/local/include/zconf.h
[email protected]:~/zlib-# cd /lib/x86_64-linux-gnu
[email protected]:/lib/x86_64-linux-gnu# ln -s -f /usr/local/lib/libz.so.1.2.9/lib libz.so.1
[email protected]:/lib/x86_64-linux-gnu# cd ~
[email protected]:~# rm -rf zlib-1.2.11
此外,如果出現如下問題:
>>> import cv2
RuntimeError: module compiled against API version xa but this version of numpy is x9
Traceback (most recent call last):
File "<stdin>", line , in <module>
ImportError: numpy.core.multiarray failed to import
則可能是因為numpy和opencv2版本不合,可以先
pip install -U numpy
再重新測試
這時再測試就ok啦
XXXX:~$ sudo python
Python (default, Dec , ::)
[GCC ] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.2.0'
>>>
五、配置python3的opencv
該位址提供了一種在已經配置了python2和opencv的情況下,再配python3的方法
還未嘗試,留待之後親測後再來完善本篇。在這分享給大家,有需要可以自行嘗試。