Opened 12 years ago
Closed 11 years ago
#575 closed defect (wontfix)
CMake Compile: Assignment operator could not be generated
Reported by: | RMWChaos | Owned by: | mloskot |
---|---|---|---|
Priority: | minor | Milestone: | 3.4.0 |
Component: | Build/Install (cmake) | Version: | main |
Severity: | Unassigned | Keywords: | Cmake Warning Geometry Noder |
Cc: |
Description
Not sure what the impact of these warnings are, as the build fails immediately afterwards while linking geos_c.dll; so I cannot test the results of the build. However, I don't believe this issue is related to the build failing with unresolved externals.
Following the instructions on http://trac.osgeo.org/geos/wiki/BuildingOnWindowsWithCMake; Running in SDK 7.0 x64 (MSVC 2008).
- Downloaded svn_trunk
- geos\src\util\triangulate directory is missing from svn_trunk; so have to either copy it from a nightly snapshot, or apply the entire snapshot over the svn_trunk. I've tried both methods and run into the same warnings below. In this specific case, I was using geos-20120727.tar.bz2.
- Ran c:\temp\geos\build> cmake -G "NMake Makefiles" c:\temp\geos
CMake completes successfully with no warnings or errors.
- Ran c:\temp\geos\build> nmake /f makefile MSVC_VER=1500
Receive the following warnings at 83% just before linking geos_c.dll
[ 83%] Built target geos-static [ 83%] Building CXX object capi/CMakeFiles/geos_c.dir/geos_c.cpp.obj geos_c.cpp [ 83%] Building CXX object capi/CMakeFiles/geos_c.dir/geos_ts_c.cpp.obj geos_ts_c.cpp C:\Temp\libgeos_CMake\include\geos/noding/GeometryNoder.h(54) : warning C425 1: 'geos::noding::GeometryNoder::lineList' : class 'std::vector<_Ty>' needs to have dll-interface to be used by clients of class 'geos::noding::Geometry Noder' with [ _Ty=geos::noding::SegmentString * ] C:\Temp\libgeos_CMake\include\geos/noding/GeometryNoder.h(61) : warning C425 1: 'geos::noding::GeometryNoder::noder' : class 'std::auto_ptr<_Ty>' needs t o have dll-interface to be used by clients of class 'geos::noding::GeometryN oder' with [ _Ty=geos::noding::Noder ] C:\Temp\libgeos_CMake\include\geos/noding/GeometryNoder.h(65) : warning C451 2: 'geos::noding::GeometryNoder' : assignment operator could not be generate d C:\Temp\libgeos_CMake\include\geos/noding/GeometryNoder.h(41) : see declaration of 'geos::noding::GeometryNoder' C:\Temp\libgeos_CMake\include\geos/operation/buffer/OffsetSegmentString.h(17 4) : warning C4267: 'return' : conversion from 'size_t' to 'int', possible l oss of data c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\memory(721) : warning C4150: deletion of pointer to incomplete type 'geos::noding::Noder'; no destructor called C:\Temp\libgeos_CMake\include\geos/noding/GeometryNoder.h(33) : see declaration of 'geos::noding::Noder' c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\memory (720) : while compiling class template member function 'std::auto_ptr<_Ty>:: ~auto_ptr(void)' with [ _Ty=geos::noding::Noder ] C:\Temp\libgeos_CMake\include\geos/noding/GeometryNoder.h(61) : see reference to class template instantiation 'std::auto_ptr<_Ty>' being compile d with [ _Ty=geos::noding::Noder ] Linking CXX shared library ..\bin\geos_c.dll
Change History (6)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
Similar error occurs with straight NMake build (no CMake component)...
cl /nologo /MD /GR /O2 /W3 /EHs /D "NDEBUG" /D "NOMINMAX" /D "WIN32 _LEAN_AND_MEAN" /D "NOGDI" /D "GEOS_DLL_EXPORT" /D "_CRT_SECURE_NO_DEPRECATE " /D "_CRT_NONSTDC_NO_DEPRECATE" /D "_SCL_SECURE_NO_DEPRECATE" -I..\include -I..\capi /c noding\GeometryNoder.cpp /Fonoding\GeometryNoder.obj GeometryNoder.cpp ..\include\geos/noding/GeometryNoder.h(54) : warning C4251: 'geos::noding::G eometryNoder::lineList' : class 'std::vector<_Ty>' needs to have dll-interfa ce to be used by clients of class 'geos::noding::GeometryNoder' with [ _Ty=geos::noding::SegmentString * ] ..\include\geos/noding/GeometryNoder.h(61) : warning C4251: 'geos::noding::G eometryNoder::noder' : class 'std::auto_ptr<_Ty>' needs to have dll-interfac e to be used by clients of class 'geos::noding::GeometryNoder' with [ _Ty=geos::noding::Noder ] noding\GeometryNoder.cpp(98) : warning C4267: 'initializing' : conversion fr om 'size_t' to 'unsigned int', possible loss of data noding\GeometryNoder.cpp(140) : warning C4267: 'initializing' : conversion f rom 'size_t' to 'unsigned int', possible loss of data
comment:3 by , 12 years ago
Missed this in the output previously, but building a couple files in the /src/triangulate directory give the same warnings. Are these even of any concern, or is this another case of Microsoft complaining about things that don't fit into The World According to Billy Bass Gates?
cl /nologo /MD /GR /O2 /W3 /EHs /D "NDEBUG" /D "NOMINMAX" /D "WIN32 _LEAN_AND_MEAN" /D "NOGDI" /D "GEOS_DLL_EXPORT" /D "_CRT_SECURE_NO_DEPRECATE " /D "_CRT_NONSTDC_NO_DEPRECATE" /D "_SCL_SECURE_NO_DEPRECATE" -I..\include -I..\capi /c triangulate\DelaunayTriangulationBuilder.cpp /Fotriangulate\Del aunayTriangulationBuilder.obj DelaunayTriangulationBuilder.cpp ..\include\geos/triangulate/quadedge/QuadEdgeSubdivision.h(93) : warning C42 51: 'geos::triangulate::quadedge::QuadEdgeSubdivision::quadEdges' : class 's td::list<_Ty>' needs to have dll-interface to be used by clients of class 'g eos::triangulate::quadedge::QuadEdgeSubdivision' with [ _Ty=geos::triangulate::quadedge::QuadEdge * ] ..\include\geos/triangulate/quadedge/QuadEdgeSubdivision.h(94) : warning C42 51: 'geos::triangulate::quadedge::QuadEdgeSubdivision::removedEdges' : class 'std::list<_Ty>' needs to have dll-interface to be used by clients of class 'geos::triangulate::quadedge::QuadEdgeSubdivision' with [ _Ty=geos::triangulate::quadedge::QuadEdge * ] ..\include\geos/triangulate/quadedge/QuadEdgeSubdivision.h(100) : warning C4 251: 'geos::triangulate::quadedge::QuadEdgeSubdivision::locator' : class 'st d::auto_ptr<_Ty>' needs to have dll-interface to be used by clients of class 'geos::triangulate::quadedge::QuadEdgeSubdivision' with [ _Ty=geos::triangulate::quadedge::QuadEdgeLocator ] cl /nologo /MD /GR /O2 /W3 /EHs /D "NDEBUG" /D "NOMINMAX" /D "WIN32 _LEAN_AND_MEAN" /D "NOGDI" /D "GEOS_DLL_EXPORT" /D "_CRT_SECURE_NO_DEPRECATE " /D "_CRT_NONSTDC_NO_DEPRECATE" /D "_SCL_SECURE_NO_DEPRECATE" -I..\include -I..\capi /c triangulate\IncrementalDelaunayTriangulator.cpp /Fotriangulate\ IncrementalDelaunayTriangulator.obj IncrementalDelaunayTriangulator.cpp ..\include\geos/triangulate/quadedge/QuadEdgeSubdivision.h(93) : warning C42 51: 'geos::triangulate::quadedge::QuadEdgeSubdivision::quadEdges' : class 's td::list<_Ty>' needs to have dll-interface to be used by clients of class 'g eos::triangulate::quadedge::QuadEdgeSubdivision' with [ _Ty=geos::triangulate::quadedge::QuadEdge * ] ..\include\geos/triangulate/quadedge/QuadEdgeSubdivision.h(94) : warning C42 51: 'geos::triangulate::quadedge::QuadEdgeSubdivision::removedEdges' : class 'std::list<_Ty>' needs to have dll-interface to be used by clients of class 'geos::triangulate::quadedge::QuadEdgeSubdivision' with [ _Ty=geos::triangulate::quadedge::QuadEdge * ] ..\include\geos/triangulate/quadedge/QuadEdgeSubdivision.h(100) : warning C4 251: 'geos::triangulate::quadedge::QuadEdgeSubdivision::locator' : class 'st d::auto_ptr<_Ty>' needs to have dll-interface to be used by clients of class 'geos::triangulate::quadedge::QuadEdgeSubdivision' with [ _Ty=geos::triangulate::quadedge::QuadEdgeLocator ]
comment:4 by , 12 years ago
And here are some more at about 79%...
GeometryPrecisionReducer.cpp C:\Temp\libgeos_cmake\include\geos/precision/GeometryPrecisionReducer.h(154) : warning C4512: 'geos::precision::GeometryPrecisionReducer' : assignment operator could not be generated C:\Temp\libgeos_cmake\include\geos/precision/GeometryPrecisionReduce r.h(42) : see declaration of 'geos::precision::GeometryPrecisionReducer' C:\Temp\libgeos_cmake\include\geos/precision/PrecisionReducerCoordinateOperation.h(60) : warning C4512: 'geos::precision::PrecisionReducerCoordinateOperation' : assignment operator could not be generated C:\Temp\libgeos_cmake\include\geos/precision/PrecisionReducerCoordin ateOperation.h(36) : see declaration of 'geos::precision::PrecisionReducerCoordinateOperation' [ 79%] Building CXX object src/CMakeFiles/geos-static.dir/precision/Precisio nReducerCoordinateOperation.cpp.obj PrecisionReducerCoordinateOperation.cpp C:\Temp\libgeos_cmake\include\geos/precision/PrecisionReducerCoordinateOpera tion.h(60) : warning C4512: 'geos::precision::PrecisionReducerCoordinateOper ation' : assignment operator could not be generated C:\Temp\libgeos_cmake\include\geos/precision/PrecisionReducerCoordin ateOperation.h(36) : see declaration of 'geos::precision::PrecisionReducerCo ordinateOperation' C:\Temp\libgeos_cmake\src\precision\PrecisionReducerCoordinateOperation.cpp( 40) : warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data [ 79%] Building CXX object src/CMakeFiles/geos-static.dir/precision/SimpleGe ometryPrecisionReducer.cpp.obj SimpleGeometryPrecisionReducer.cpp C:\Temp\libgeos_cmake\src\precision\SimpleGeometryPrecisionReducer.cpp(73) : warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data
comment:5 by , 12 years ago
Milestone: | 3.3.5 → 3.4.0 |
---|
comment:6 by , 11 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Quoting strk from #576:
The official build system is the automake one. Please only file tickets against cmake if willing to provide a patch (sorry).
Correction: geos/src/triangulate missing (not geos/src/util/triangulate)