ppwwyyxx / OpenPano

Automatic Panorama Stitching From Scratch
MIT License
1.86k stars 553 forks source link

trying to make #60

Closed jwijffels closed 6 years ago

jwijffels commented 6 years ago

Hello I'm trying to build an R wrapper around this. Which works fine on Linux already. I'm now trying to make sure it also builds on Windows. When I do this, it shows me these compilation issues. Can someone assist in trying to fix these? The package is available at https://github.com/bnosac/image/tree/master/image.OpenPano with the following make elements:

CXX_STD=CXX11
PKG_LIBS = -ljpeg $(SHLIB_OPENMP_CFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS)
PKG_CPPFLAGS  = -I. -isystem third-party -DDEBUG -Wnon-virtual-dtor

SOURCES = lib/polygon.cc lib/debugutils.cc lib/color.cc lib/config.cc lib/timer.cc lib/imgproc.cc lib/kdtree.cc lib/imgio.cc lib/planedrawer.cc lib/matrix.cc lib/utils.cc feature/dist.cc feature/orientation.cc feature/sift.cc feature/gaussian.cc feature/feature.cc feature/dog.cc feature/matcher.cc feature/extrema.cc feature/brief.cc stitch/homography.cc stitch/warp.cc stitch/camera_estimator.cc stitch/debug.cc stitch/multiband.cc stitch/transform_estimate.cc stitch/cylstitcher.cc stitch/stitcherbase.cc stitch/camera.cc stitch/stitcher.cc stitch/blender.cc stitch/stitcher_image.cc stitch/incremental_bundle_adjuster.cc third-party/lodepng/lodepng.cc
SOURCES += rcpp-openpano.cpp
SOURCES += RcppExports.cpp

OBJ = $(SOURCES:.cc=.o)
OBJECTS = $(OBJ:.cpp=.o)
* installing *source* package 'image.OpenPano' ...
** libs

*** arch - i386
d:/Compiler/gcc-4.9.3/mingw_32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-3.4.4/include" -DNDEBUG -I. -isystem third-party --std=gnu++11 -DDEBUG -Wnon-virtual-dtor -I"d:/RCompile/CRANpkg/lib/3.4/Rcpp/include" -I"d:/RCompile/CRANpkg/lib/3.4/RcppEigen/include"   -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp   -O2 -Wall  -mtune=core2 -c lib/polygon.cc -o lib/polygon.o
d:/Compiler/gcc-4.9.3/mingw_32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-3.4.4/include" -DNDEBUG -I. -isystem third-party --std=gnu++11 -DDEBUG -Wnon-virtual-dtor -I"d:/RCompile/CRANpkg/lib/3.4/Rcpp/include" -I"d:/RCompile/CRANpkg/lib/3.4/RcppEigen/include"   -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp   -O2 -Wall  -mtune=core2 -c lib/debugutils.cc -o lib/debugutils.o
In file included from D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/x86intrin.h:29:0,
                 from D:/Compiler/gcc-4.9.3/mingw_32/i686-w64-mingw32/include/c++/i686-w64-mingw32/bits/opt_random.h:33,
                 from D:/Compiler/gcc-4.9.3/mingw_32/i686-w64-mingw32/include/c++/random:50,
                 from D:/Compiler/gcc-4.9.3/mingw_32/i686-w64-mingw32/include/c++/bits/stl_algo.h:66,
                 from D:/Compiler/gcc-4.9.3/mingw_32/i686-w64-mingw32/include/c++/algorithm:62,
                 from d:/RCompile/CRANpkg/lib/3.4/Rcpp/include/RcppCommon.h:72,
                 from d:/RCompile/CRANpkg/lib/3.4/Rcpp/include/Rcpp.h:27,
                 from lib/debugutils.cc:62:
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h: In function '__m64 _mm_cvtsi32_si64(int)':
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h:64:54: error: can't convert between vector values of different size
   return (__m64) __builtin_ia32_vec_init_v2si (__i, 0);
                                                      ^
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h: In function 'int _mm_cvtsi64_si32(__m64)':
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h:107:53: error: cannot convert '__m64 {aka int}' to '__vector(2) int' for argument '1' to 'int __builtin_ia32_vec_ext_v2si(__vector(2) int, int)'
   return __builtin_ia32_vec_ext_v2si ((__v2si)__i, 0);
                                                     ^
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h: In function '__m64 _mm_packs_pi16(__m64, __m64)':
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h:146:69: error: cannot convert '__v4hi {aka short int}' to '__vector(4) short int' for argument '1' to '__vector(8) char __builtin_ia32_packsswb(__vector(4) short int, __vector(4) short int)'
   return (__m64) __builtin_ia32_packsswb ((__v4hi)__m1, (__v4hi)__m2);
                                                                     ^
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h: In function '__m64 _mm_packs_pi32(__m64, __m64)':
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h:161:69: error: cannot convert '__m64 {aka int}' to '__vector(2) int' for argument '1' to '__vector(4) short int __builtin_ia32_packssdw(__vector(2) int, __vector(2) int)'
   return (__m64) __builtin_ia32_packssdw ((__v2si)__m1, (__v2si)__m2);
                                                                     ^
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h: In function '__m64 _mm_packs_pu16(__m64, __m64)':
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h:176:69: error: cannot convert '__v4hi {aka short int}' to '__vector(4) short int' for argument '1' to '__vector(8) char __builtin_ia32_packuswb(__vector(4) short int, __vector(4) short int)'
   return (__m64) __builtin_ia32_packuswb ((__v4hi)__m1, (__v4hi)__m2);
                                                                     ^
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h: In function '__m64 _mm_unpackhi_pi8(__m64, __m64)':
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h:190:70: error: cannot convert '__v8qi {aka char}' to '__vector(8) char' for argument '1' to '__vector(8) char __builtin_ia32_punpckhbw(__vector(8) char, __vector(8) char)'
   return (__m64) __builtin_ia32_punpckhbw ((__v8qi)__m1, (__v8qi)__m2);
                                                                      ^
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h: In function '__m64 _mm_unpackhi_pi16(__m64, __m64)':
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h:204:70: error: cannot convert '__v4hi {aka short int}' to '__vector(4) short int' for argument '1' to '__vector(4) short int __builtin_ia32_punpckhwd(__vector(4) short int, __vector(4) short int)'
   return (__m64) __builtin_ia32_punpckhwd ((__v4hi)__m1, (__v4hi)__m2);
                                                                      ^
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h: In function '__m64 _mm_unpackhi_pi32(__m64, __m64)':
D:/Compiler/gcc-4.9.3/mingw_32/lib/gcc/i686-w64-mingw32/4.9.3/include/mmintrin.h:218:70: error: cannot convert '__m64 {aka int}' to '__vector(2) int' for argument '1' to '__vector(2) int __builtin_ia32_punpckhdq(__vector(2) int, __vector(2) int)'
   return (__m64) __builtin_ia32_punpckhdq ((__v2si)__m1, (__v2si)__m2);
                                                                      ^
........

In file included from d:/RCompile/CRANpkg/lib/3.4/Rcpp/include/Rcpp.h:66:0,
                 from lib/debugutils.cc:62:
d:/RCompile/CRANpkg/lib/3.4/Rcpp/include/Rcpp/Module.h: At global scope:
d:/RCompile/CRANpkg/lib/3.4/Rcpp/include/Rcpp/Module.h:448:34: warning: 'moduleSym' defined but not used [-Wunused-variable]
 static VARIABLE_IS_NOT_USED SEXP moduleSym = NULL;
                                  ^
make: *** [lib/debugutils.o] Error 1
Warning: running command 'make -f "Makevars" -f "D:/RCompile/recent/R-3.4.4/etc/i386/Makeconf" -f "D:/RCompile/recent/R-3.4.4/etc/i386/Makevars.site" -f "D:/RCompile/recent/R-3.4.4/share/make/winshlib.mk" CXX='$(CXX11) $(CXX11STD)' CXXFLAGS='$(CXX11FLAGS)' CXXPICFLAGS='$(CXX11PICFLAGS)' SHLIB_LDFLAGS='$(SHLIB_CXX11LDFLAGS)' SHLIB_LD='$(SHLIB_CXX11LD)' SHLIB="image.OpenPano.dll" ' had status 2
ERROR: compilation failed for package 'image.OpenPano'
* removing 'd:/RCompile/CRANguest/R-release/lib/image.OpenPano'
In R CMD INSTALL
ppwwyyxx commented 6 years ago

I have no knowledge of R and those errors look unrelated to this project.

jwijffels commented 6 years ago

I understand but this looks to me as if the error is coming from lib/debugutils.cc which does not seem to compile on mingw on windows

ppwwyyxx commented 6 years ago

The error is from mmintrin.h but debugutils.cc does not try to include this file.

jwijffels commented 6 years ago

I've also asked at stackoverflow (https://stackoverflow.com/questions/49823174/error-cant-convert-between-vector-values-of-different-size-return-m64-bu) but no luck on input either.