Project-OSRM / osrm-backend

Open Source Routing Machine - C++ backend
http://map.project-osrm.org
BSD 2-Clause "Simplified" License
6.26k stars 3.31k forks source link

when building from source on mac m1,Undefined symbols for architecture arm64 #6947

Open superccfgithub opened 2 months ago

superccfgithub commented 2 months ago

➜ build git:(master) ✗ cmake --build . [ 0%] Building CXX object CMakeFiles/UTIL.dir/src/util/assert.cpp.o [ 0%] Building CXX object CMakeFiles/UTIL.dir/src/util/conditional_restrictions.cpp.o [ 0%] Building CXX object CMakeFiles/UTIL.dir/src/util/coordinate.cpp.o [ 4%] Building CXX object CMakeFiles/UTIL.dir/src/util/coordinate_calculation.cpp.o [ 4%] Building CXX object CMakeFiles/UTIL.dir/src/util/exception.cpp.o [ 4%] Building CXX object CMakeFiles/UTIL.dir/src/util/fingerprint.cpp.o [ 4%] Building CXX object CMakeFiles/UTIL.dir/src/util/geojson_debug_policies.cpp.o [ 4%] Building CXX object CMakeFiles/UTIL.dir/src/util/guidance/bearing_class.cpp.o [ 4%] Building CXX object CMakeFiles/UTIL.dir/src/util/guidance/entry_class.cpp.o [ 8%] Building CXX object CMakeFiles/UTIL.dir/src/util/guidance/turn_lanes.cpp.o [ 8%] Building CXX object CMakeFiles/UTIL.dir/src/util/log.cpp.o [ 8%] Building CXX object CMakeFiles/UTIL.dir/src/util/opening_hours.cpp.o [ 8%] Building CXX object CMakeFiles/UTIL.dir/src/util/timed_histogram.cpp.o [ 8%] Building CXX object CMakeFiles/UTIL.dir/src/util/timezones.cpp.o [ 8%] Built target UTIL [ 13%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/compressed_edge_container.cpp.o [ 13%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/edge_based_graph_factory.cpp.o [ 13%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/extraction_containers.cpp.o [ 13%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/extractor.cpp.o [ 13%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/extractor_callbacks.cpp.o [ 13%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/graph_compressor.cpp.o [ 17%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/intersection/coordinate_extractor.cpp.o [ 17%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/intersection/have_identical_names.cpp.o [ 17%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/intersection/intersection.cpp.o [ 17%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/intersection/intersection_analysis.cpp.o [ 17%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/intersection/mergable_road_detector.cpp.o [ 17%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/intersection/node_based_graph_walker.cpp.o [ 21%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/location_dependent_data.cpp.o [ 21%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/maneuver_override_relation_parser.cpp.o [ 21%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/node_based_graph_factory.cpp.o [ 21%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/raster_source.cpp.o [ 21%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/restriction_graph.cpp.o [ 21%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/restriction_parser.cpp.o [ 21%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/scripting_environment_lua.cpp.o [ 26%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/suffix_table.cpp.o [ 26%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/turn_path_compressor.cpp.o [ 26%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/turn_path_filter.cpp.o [ 26%] Building CXX object CMakeFiles/EXTRACTOR.dir/src/extractor/way_restriction_map.cpp.o [ 26%] Built target EXTRACTOR [ 26%] Building CXX object CMakeFiles/GUIDANCE.dir/src/extractor/intersection/coordinate_extractor.cpp.o [ 26%] Building CXX object CMakeFiles/GUIDANCE.dir/src/extractor/intersection/have_identical_names.cpp.o [ 30%] Building CXX object CMakeFiles/GUIDANCE.dir/src/extractor/intersection/intersection.cpp.o [ 30%] Building CXX object CMakeFiles/GUIDANCE.dir/src/extractor/intersection/intersection_analysis.cpp.o [ 30%] Building CXX object CMakeFiles/GUIDANCE.dir/src/extractor/intersection/mergable_road_detector.cpp.o [ 30%] Building CXX object CMakeFiles/GUIDANCE.dir/src/extractor/intersection/node_based_graph_walker.cpp.o [ 30%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/driveway_handler.cpp.o [ 30%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/guidance_processing.cpp.o [ 34%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/intersection_handler.cpp.o [ 34%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/motorway_handler.cpp.o [ 34%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/roundabout_handler.cpp.o [ 34%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/segregated_intersection_classification.cpp.o [ 34%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/sliproad_handler.cpp.o [ 34%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/suppress_mode_handler.cpp.o [ 34%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/turn_analysis.cpp.o [ 39%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/turn_classification.cpp.o [ 39%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/turn_discovery.cpp.o [ 39%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/turn_handler.cpp.o [ 39%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/turn_lane_augmentation.cpp.o [ 39%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/turn_lane_data.cpp.o [ 39%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/turn_lane_handler.cpp.o [ 43%] Building CXX object CMakeFiles/GUIDANCE.dir/src/guidance/turn_lane_matcher.cpp.o [ 43%] Built target GUIDANCE [ 43%] Building CXX object CMakeFiles/PARTITIONER.dir/src/partitioner/bisection_graph_view.cpp.o [ 43%] Building CXX object CMakeFiles/PARTITIONER.dir/src/partitioner/bisection_to_partition.cpp.o [ 43%] Building CXX object CMakeFiles/PARTITIONER.dir/src/partitioner/dinic_max_flow.cpp.o [ 43%] Building CXX object CMakeFiles/PARTITIONER.dir/src/partitioner/inertial_flow.cpp.o [ 47%] Building CXX object CMakeFiles/PARTITIONER.dir/src/partitioner/partitioner.cpp.o [ 47%] Building CXX object CMakeFiles/PARTITIONER.dir/src/partitioner/recursive_bisection.cpp.o [ 47%] Building CXX object CMakeFiles/PARTITIONER.dir/src/partitioner/recursive_bisection_state.cpp.o [ 47%] Building CXX object CMakeFiles/PARTITIONER.dir/src/partitioner/renumber.cpp.o [ 47%] Building CXX object CMakeFiles/PARTITIONER.dir/src/partitioner/tarjan_graph_wrapper.cpp.o [ 47%] Built target PARTITIONER [ 47%] Building CXX object CMakeFiles/CUSTOMIZER.dir/src/customize/customizer.cpp.o [ 47%] Built target CUSTOMIZER [ 47%] Building CXX object CMakeFiles/CONTRACTOR.dir/src/contractor/contractor.cpp.o [ 47%] Building CXX object CMakeFiles/CONTRACTOR.dir/src/contractor/contractor_search.cpp.o [ 47%] Building CXX object CMakeFiles/CONTRACTOR.dir/src/contractor/graph_contractor.cpp.o [ 47%] Built target CONTRACTOR [ 47%] Building CXX object CMakeFiles/UPDATER.dir/src/updater/csv_source.cpp.o [ 47%] Building CXX object CMakeFiles/UPDATER.dir/src/updater/updater.cpp.o [ 47%] Built target UPDATER [ 47%] Building CXX object CMakeFiles/STORAGE.dir/src/storage/io_config.cpp.o [ 52%] Building CXX object CMakeFiles/STORAGE.dir/src/storage/storage.cpp.o [ 52%] Building CXX object CMakeFiles/STORAGE.dir/src/storage/storage_config.cpp.o [ 52%] Built target STORAGE [ 52%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/api/json_factory.cpp.o [ 52%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/datafacade/mmap_memory_allocator.cpp.o [ 56%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/datafacade/process_memory_allocator.cpp.o [ 56%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/datafacade/shared_memory_allocator.cpp.o [ 56%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/douglas_peucker.cpp.o [ 56%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/engine_config.cpp.o [ 56%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/guidance/assemble_overview.cpp.o [ 56%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/guidance/assemble_route.cpp.o [ 60%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/guidance/assemble_steps.cpp.o [ 60%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/guidance/collapse_scenario_detection.cpp.o [ 60%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/guidance/collapse_turns.cpp.o [ 60%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/guidance/lane_processing.cpp.o [ 60%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/guidance/post_processing.cpp.o [ 60%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/guidance/verbosity_reduction.cpp.o [ 60%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/hint.cpp.o [ 65%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/plugins/match.cpp.o [ 65%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/plugins/nearest.cpp.o [ 65%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/plugins/table.cpp.o [ 65%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/plugins/tile.cpp.o [ 65%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/plugins/trip.cpp.o [ 65%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/plugins/viaroute.cpp.o [ 69%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/polyline_compressor.cpp.o [ 69%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/routing_algorithms/alternative_path_ch.cpp.o [ 69%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/routing_algorithms/alternative_path_mld.cpp.o [ 69%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/routing_algorithms/direct_shortest_path.cpp.o [ 69%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/routing_algorithms/many_to_many_ch.cpp.o [ 69%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/routing_algorithms/many_to_many_mld.cpp.o [ 73%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/routing_algorithms/map_matching.cpp.o [ 73%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/routing_algorithms/routing_base.cpp.o [ 73%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/routing_algorithms/routing_base_ch.cpp.o [ 73%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/routing_algorithms/routing_base_mld.cpp.o [ 73%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/routing_algorithms/shortest_path.cpp.o [ 73%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/routing_algorithms/tile_turns.cpp.o [ 73%] Building CXX object CMakeFiles/ENGINE.dir/src/engine/search_engine_data.cpp.o [ 73%] Built target ENGINE [ 73%] Building CXX object CMakeFiles/SERVER.dir/src/server/api/parameters_parser.cpp.o [ 73%] Building CXX object CMakeFiles/SERVER.dir/src/server/api/url_parser.cpp.o [ 78%] Building CXX object CMakeFiles/SERVER.dir/src/server/connection.cpp.o [ 78%] Building CXX object CMakeFiles/SERVER.dir/src/server/http/reply.cpp.o [ 78%] Building CXX object CMakeFiles/SERVER.dir/src/server/request_handler.cpp.o [ 78%] Building CXX object CMakeFiles/SERVER.dir/src/server/request_parser.cpp.o [ 78%] Building CXX object CMakeFiles/SERVER.dir/src/server/service/match_service.cpp.o [ 78%] Building CXX object CMakeFiles/SERVER.dir/src/server/service/nearest_service.cpp.o [ 82%] Building CXX object CMakeFiles/SERVER.dir/src/server/service/route_service.cpp.o [ 82%] Building CXX object CMakeFiles/SERVER.dir/src/server/service/table_service.cpp.o [ 82%] Building CXX object CMakeFiles/SERVER.dir/src/server/service/tile_service.cpp.o [ 82%] Building CXX object CMakeFiles/SERVER.dir/src/server/service/trip_service.cpp.o [ 82%] Building CXX object CMakeFiles/SERVER.dir/src/server/service_handler.cpp.o [ 82%] Built target SERVER [ 82%] Building C object CMakeFiles/MICROTAR.dir/third_party/microtar/src/microtar.c.o [ 82%] Built target MICROTAR [ 82%] Building CXX object CMakeFiles/osrm.dir/src/osrm/osrm.cpp.o [ 82%] Linking CXX static library libosrm.a [ 82%] Built target osrm [ 82%] Building CXX object CMakeFiles/osrm-routed.dir/src/tools/routed.cpp.o [ 82%] Linking CXX executable osrm-routed Undefined symbols for architecture arm64: "std::exception_ptr::__from_native_exception_pointer(void*)", referenced from: boost::asio::detail::thread_info_base::capture_current_exception() in routed.cpp.o std::__1::promise<int>::~promise() in routed.cpp.o boost::asio::detail::thread_info_base::capture_current_exception() in connection.cpp.o "___cxa_init_primary_exception", referenced from: boost::asio::detail::thread_info_base::capture_current_exception() in routed.cpp.o std::__1::promise<int>::~promise() in routed.cpp.o boost::asio::detail::thread_info_base::capture_current_exception() in connection.cpp.o ld: symbol(s) not found for architecture arm64 clang++: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [osrm-routed] Error 1 make[1]: *** [CMakeFiles/osrm-routed.dir/all] Error 2 make: *** [all] Error 2 I have the dependencies installed including boost@1.76. And clang version is Homebrew clang version 18.1.5 Target: arm64-apple-darwin21.6.0 Thread model: posix InstalledDir: /opt/homebrew/opt/llvm/bin

How to fix this ? Thanks a lot!

DennisOSRM commented 2 months ago

Try using stock AppleClang instead of the one from homebrew. A guess would be that boost isnt compiled with the homebrew compiler and that leads to some inconsistency.

superccfgithub commented 2 months ago

Try using stock AppleClang instead of the one from homebrew. A guess would be that boost isnt compiled with the homebrew compiler and that leads to some inconsistency.

thanks for your advice,but appleClang'version is 14, but this project needs 17

SiarheiFedartsou commented 2 months ago

Try using stock AppleClang instead of the one from homebrew. A guess would be that boost isnt compiled with the homebrew compiler and that leads to some inconsistency.

thanks for your advice,but appleClang'version is 14, but this project needs 17

Hm, it should work well with AppleClang 14, why do you think it requires “17”?