Do not violate the One Definition Rule (ODR).
By linking in the coordinate object file twice, we violate the ODR, resulting in our program to not be "well-formed" in language lawyer speak (hint: bad, very bad). (How come no one noticed this all the time, this was introduced somewhere between v4.5.0 and v4.6.0 from a quick look...) References: - C++14 standard (N3936.pfd): 3.2 One definition rule [basic.def.odr] - http://eel.is/c++draft/basic.def.odr
This commit is contained in:
		
							parent
							
								
									ca0f8ed653
								
							
						
					
					
						commit
						3f7afd47d2
					
				| @ -92,7 +92,7 @@ set( | ||||
| ) | ||||
| 
 | ||||
| add_library(COORDINATE OBJECT ${CoordinateGlob}) | ||||
| add_library(OSRM ${OSRMSources} $<TARGET_OBJECTS:ANGLE> $<TARGET_OBJECTS:COORDINATE> $<TARGET_OBJECTS:FINGERPRINT> $<TARGET_OBJECTS:COORDINATE> $<TARGET_OBJECTS:LOGGER> $<TARGET_OBJECTS:RESTRICTION> $<TARGET_OBJECTS:PHANTOMNODE> $<TARGET_OBJECTS:EXCEPTION> $<TARGET_OBJECTS:MERCATOR> $<TARGET_OBJECTS:IMPORT>) | ||||
| add_library(OSRM ${OSRMSources} $<TARGET_OBJECTS:ANGLE> $<TARGET_OBJECTS:COORDINATE> $<TARGET_OBJECTS:FINGERPRINT> $<TARGET_OBJECTS:LOGGER> $<TARGET_OBJECTS:RESTRICTION> $<TARGET_OBJECTS:PHANTOMNODE> $<TARGET_OBJECTS:EXCEPTION> $<TARGET_OBJECTS:MERCATOR> $<TARGET_OBJECTS:IMPORT>) | ||||
| 
 | ||||
| add_library(FINGERPRINT OBJECT util/fingerprint.cpp) | ||||
| add_dependencies(FINGERPRINT FingerPrintConfigure) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user