← Back to team overview

lidardev team mailing list archive

[Blueprint windows-compilation] Specific issues for Windows compilation

 

Blueprint changed by Olivier Tournaire:

Whiteboard changed:
  Here are some tips on compiling LidarFormat on Windows.
  
+ *****************************************************************
  ***** Tests made with Visual 2008 Express Edition *****
+ *****************************************************************
  
  1) Boost build
  To use boost autolink on windows, you have to build boost libs with the specific toolset associated with your compiler. For example, to build all configurations with Visual 2008 Express and install in default location (C:/Boost), use this command line:
       bjam toolset=msvc-9.0express --build-type=complete install
  In addition, you can choose to exclude some not needed libraries for the build process with the '--without-LIBTOEXCLUDE' option. For more options, see http://www.boost.org/doc/libs/1_39_0/more/getting_started/windows.html
  
  2) XSD
  To use XSD binaries, add the path in Tools > Options > Projects and Solutions > VC++ directories > C:\Program Files\CodeSynthesis XSD 3.2\bin. Please note that this path must be in the top of the list to avoid conflict with Microsoft xsd.exe. For other issues, please consult http://wiki.codesynthesis.com/Using_XSD_with_Microsoft_Visual_Studio
  
+ **************************
  ***** To be solved *****
+ **************************
  
  1) Compilation of 02_ex_filtering.cpp is still a problem with VC++. It
  generates the following errors:
  
  1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3172) : error C2666: 'Lidar::operator +' : les 2 surcharges ont des conversions similaires
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(379): peut être 'const Lidar::LidarConstIteratorEcho::Self Lidar::operator +(const Lidar::LidarConstIteratorEcho::Self &,const size_t)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(261): ou       'const Lidar::LidarIteratorEcho::Self Lidar::operator +(const Lidar::LidarIteratorEcho::Self &,__w64 const int)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        lors de la tentative de mise en correspondance de la liste des arguments '(Lidar::LidarIteratorEcho, size_t)'
  1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3187) : voir la référence à l'instanciation de la fonction modèle 'void std::_Median<_RanIt,_Pr>(_RanIt,_RanIt,_RanIt,_Pr)' en cours de compilation
  1>        with
  1>        [
  1>            _RanIt=Lidar::LidarIteratorEcho,
  1>            _Pr=LessEcho
  1>        ]
  1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3249) : voir la référence à l'instanciation de la fonction modèle 'std::pair<_Ty1,_Ty2> std::_Unguarded_partition<_RanIt,_Pr>(_RanIt,_RanIt,_Pr)' en cours de compilation
  1>        with
  1>        [
  1>            _Ty1=Lidar::LidarIteratorEcho,
  1>            _Ty2=Lidar::LidarIteratorEcho,
  1>            _RanIt=Lidar::LidarIteratorEcho,
  1>            _Pr=LessEcho
  1>        ]
  1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3279) : voir la référence à l'instanciation de la fonction modèle 'void std::_Sort<Lidar::LidarIteratorEcho,__w64 int,_Pr>(_RanIt,_RanIt,_Diff,_Pr)' en cours de compilation
  1>        with
  1>        [
  1>            _Pr=LessEcho,
  1>            _RanIt=Lidar::LidarIteratorEcho,
  1>            _Diff=__w64 int
  1>        ]
  1>        .\tests\02_ex_filtering.cpp(145) : voir la référence à l'instanciation de la fonction modèle 'void std::sort<Lidar::LidarDataContainer::iterator,LessEcho>(_RanIt,_RanIt,_Pr)' en cours de compilation
  1>        with
  1>        [
  1>            _RanIt=Lidar::LidarDataContainer::iterator,
  1>            _Pr=LessEcho
  1>        ]
  1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3172) : error C2666: 'Lidar::operator +' : les 2 surcharges ont des conversions similaires
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(379): peut être 'const Lidar::LidarConstIteratorEcho::Self Lidar::operator +(const Lidar::LidarConstIteratorEcho::Self &,const size_t)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(261): ou       'const Lidar::LidarIteratorEcho::Self Lidar::operator +(const Lidar::LidarIteratorEcho::Self &,__w64 const int)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        lors de la tentative de mise en correspondance de la liste des arguments '(Lidar::LidarIteratorEcho, size_t)'
  1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3172) : error C2780: 'void std::_Med3(_RanIt,_RanIt,_RanIt)' : 3 arguments attendus - 4 fournis
  1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(2997) : voir la déclaration de 'std::_Med3'
  1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3173) : error C2666: 'Lidar::operator -' : les 2 surcharges ont des conversions similaires
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(384): peut être 'const Lidar::LidarConstIteratorEcho::Self Lidar::operator -(const Lidar::LidarConstIteratorEcho::Self &,const size_t)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(266): ou       'const Lidar::LidarIteratorEcho::Self Lidar::operator -(const Lidar::LidarIteratorEcho::Self &,__w64 const int)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        lors de la tentative de mise en correspondance de la liste des arguments '(Lidar::LidarIteratorEcho, size_t)'
  1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3173) : error C2666: 'Lidar::operator +' : les 2 surcharges ont des conversions similaires
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(379): peut être 'const Lidar::LidarConstIteratorEcho::Self Lidar::operator +(const Lidar::LidarConstIteratorEcho::Self &,const size_t)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(261): ou       'const Lidar::LidarIteratorEcho::Self Lidar::operator +(const Lidar::LidarIteratorEcho::Self &,__w64 const int)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        lors de la tentative de mise en correspondance de la liste des arguments '(Lidar::LidarIteratorEcho, size_t)'
  1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3173) : error C2780: 'void std::_Med3(_RanIt,_RanIt,_RanIt)' : 3 arguments attendus - 4 fournis
  1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(2997) : voir la déclaration de 'std::_Med3'
  1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3174) : error C2666: 'Lidar::operator -' : les 2 surcharges ont des conversions similaires
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(384): peut être 'const Lidar::LidarConstIteratorEcho::Self Lidar::operator -(const Lidar::LidarConstIteratorEcho::Self &,const size_t)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(266): ou       'const Lidar::LidarIteratorEcho::Self Lidar::operator -(const Lidar::LidarIteratorEcho::Self &,__w64 const int)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        lors de la tentative de mise en correspondance de la liste des arguments '(Lidar::LidarIteratorEcho, size_t)'
  1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3174) : error C2666: 'Lidar::operator -' : les 2 surcharges ont des conversions similaires
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(384): peut être 'const Lidar::LidarConstIteratorEcho::Self Lidar::operator -(const Lidar::LidarConstIteratorEcho::Self &,const size_t)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(266): ou       'const Lidar::LidarIteratorEcho::Self Lidar::operator -(const Lidar::LidarIteratorEcho::Self &,__w64 const int)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        lors de la tentative de mise en correspondance de la liste des arguments '(Lidar::LidarIteratorEcho, size_t)'
  1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3174) : error C2780: 'void std::_Med3(_RanIt,_RanIt,_RanIt)' : 3 arguments attendus - 4 fournis
  1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(2997) : voir la déclaration de 'std::_Med3'
  1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3175) : error C2666: 'Lidar::operator +' : les 2 surcharges ont des conversions similaires
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(379): peut être 'const Lidar::LidarConstIteratorEcho::Self Lidar::operator +(const Lidar::LidarConstIteratorEcho::Self &,const size_t)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(261): ou       'const Lidar::LidarIteratorEcho::Self Lidar::operator +(const Lidar::LidarIteratorEcho::Self &,__w64 const int)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        lors de la tentative de mise en correspondance de la liste des arguments '(Lidar::LidarIteratorEcho, size_t)'
  1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3175) : error C2666: 'Lidar::operator -' : les 2 surcharges ont des conversions similaires
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(384): peut être 'const Lidar::LidarConstIteratorEcho::Self Lidar::operator -(const Lidar::LidarConstIteratorEcho::Self &,const size_t)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        C:\code\lidar.repo\branch-windows_compilation\src\LidarFormat/LidarIteratorEcho.h(266): ou       'const Lidar::LidarIteratorEcho::Self Lidar::operator -(const Lidar::LidarIteratorEcho::Self &,__w64 const int)' [trouvé à l'aide d'une recherche dépendante d'un argument]
  1>        lors de la tentative de mise en correspondance de la liste des arguments '(Lidar::LidarIteratorEcho, size_t)'
  1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(3175) : error C2780: 'void std::_Med3(_RanIt,_RanIt,_RanIt)' : 3 arguments attendus - 4 fournis
  1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\algorithm(2997) : voir la déclaration de 'std::_Med3'
  
  See http://msdn.microsoft.com/en-us/library/dyafzty4%28VS.71%29.aspx for
  more information
  
  2) If the lib is compiled as a .DLL, tests are looking for a .LIB. Can
  be solved by adding specific linking rules in CMakeLists.txt depending
  on the value of the LIBRARY_TYPE (or BUILD_LIBRARY_SHARED).
  
  3) Maybe after the previous fix, CPack options for Windows have to be
  updated.
  
+ *************************************************
  ***** Remaining compilation warnings *****
+ *************************************************
+ 
  1) TerraBin.cpp (2 times): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.
  --> 2 solutions: 1) use fopen_s 2) add a compilation flag in CMakeLists.txt (see Windows specific section line 146) ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
  
  2) Orientation2D.cpp(96) : warning C4101: 'e' : variable locale non
  référencée
  
  3) LidarFile.cpp(127) : warning C4101: 'e' : variable locale non
  référencée
  
  Note: only 4 warnings ...

-- 
  Specific issues for Windows compilation
  https://blueprints.edge.launchpad.net/lidarformat/+spec/windows-compilation