我想为一些额外的OpenCV函数添加包装,所以如何只编译python模块而不编译整个库,这需要很长时间。
我找出了CMakeLists.txt和cmake生成的Makefile的步骤,它应该采取三个步骤:
生成c ++头文件(正在工作!)
python src2 / gen.py src2 / python src2 / gen2.py。 \ ../core/include/opencv2/core/core.hpp \ ../flann/include/opencv2/flann/miniflann.hpp \ ../imgproc/include/opencv2/imgproc/imgproc.hpp \ ../video/include/opencv2/video/background_segm.hpp \ ../video/include/opencv2/video/tracking.hpp \ ../photo/include/opencv2/photo/photo.hpp \ ../highgui/include/opencv2/highgui/highgui.hpp \ ../ml/include/opencv2/ml/ml.hpp \ ../features2d/include/opencv2/features2d/features2d.hpp \ ../calib3d/include/opencv2/calib3d/calib3d.hpp \ ../objdetect/include/opencv2/objdetect/objdetect.hpp \ ../contrib/include/opencv2/contrib/contrib.hpp \ ../nonfree/include/opencv2/nonfree/features2d.hpp \ ../非自由/包含/ opencv2 /非游离/ nonfree.hpp
编译src2 / cv2.cpp(不工作!)
g ++ -fPIC -c src2 / cv2.cpp -o cv2.o -DPYTHON_USE_NUMPY = 1 pkg-config --cflags --libs python opencv
-I /usr/lib/python2.7/dist-packages/numpy/core/include/ -I 。
链接(来自Makefile,应该正常工作!)
/ usr / bin / c ++ -fPIC -fsigned-char -W -Wall -Werror = return-type -Werror = non-virtual-dtor -Werror = address -Werror = sequence-point -Wformat -Werror = format- security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -fdiagnostics-show-option -Wno-long-long -pthread- fomit-frame-pointer -msse -msse2 -msse3 -ffunction-sections -fvisibility = hidden -fvisibility-inlines-hidden -Wno-unused-function -O3 -DNDEBUG -DNDEBUG -shared -Wl,-soname,cv2.so -o ../../lib/cv2.so CMakeFiles / opencv_python.dir / src2 / cv2.cpp.o -lpython2.7 ../../lib/libopencv_core.so.3.0.0 ../../lib /libopencv_flann.so.3.0.0 ../../lib/libopencv_imgproc.so.3.0.0 ../../lib/libopencv_highgui.so.3.0.0 ../../lib/libopencv_features2d.so。 3.0.0 ../../lib/libopencv_calib3d.so.3.0.0 ../../lib/libopencv_cudaarithm.so.3.0.0 ../../lib/libopencv_ml.so.3.0.0 .. /../lib/libopencv_nonfree.so.3.0.0 ../../lib/libopencv_objdetect.so.3.0.0 ../../lib/libopencv_video.so.3.0。 0 ../../lib/libopencv_contrib.so.3.0.0 ../../lib/libopencv_cudafilters.so.3.0.0 ../../lib/libopencv_cudaimgproc.so.3.0.0 ../。 ./lib/libopencv_legacy.so.3.0.0 ../../lib/libopencv_photo.so.3.0.0 ../../lib/libopencv_softcascade.so.3.0.0 ../../lib/libopencv_nonfree .so.3.0.0 ../../lib/libopencv_objdetect.so.3.0.0 ../../lib/libopencv_calib3d.so.3.0.0 ../../lib/libopencv_features2d.so.3.0。 0 ../../lib/libopencv_flann.so.3.0.0 ../../lib/libopencv_highgui.so.3.0.0 ../../lib/libopencv_video.so.3.0.0 ../。 ./lib/libopencv_cudaimgproc.so.3.0.0 ../../lib/libopencv_cudafilters.so.3.0.0 ../../lib/libopencv_cudaarithm.so.3.0.0 ../../lib/libopencv_imgproc .so.3.0.0 ../../lib/libopencv_ml.so.3.0.0 ../../lib/libopencv_core.so.3.0.0 -Wl,-rpath,/ home / taowei / Src / opencv / lib中:
那么如何在步骤2中正确编译cv2.cpp?