cyang-kth / fmm

Fast map matching, an open source framework in C++
https://fmm-wiki.github.io/
Apache License 2.0
892 stars 215 forks source link

Python fmm not working when trying to link python through Anaconda #142

Closed nickbent closed 3 years ago

nickbent commented 3 years ago

Building fmm so it can be used in a anaconda environment

cmake .. -DPYTHON_INCLUDE_DIR=/opt/anaconda3/envs/bike/include/python3.8/ -DPYTHON_LIBRARY=/opt/anaconda3/envs/bike/lib/libpython3.8.dylib -DPYTHON_EXECUTABLE:FILEPATH=/opt/anaconda3/envs/bike/bin/python3.8

-- CMAKE version 3.18.4 -- Set CMP0074 state to NEW -- Set CMP0086 state to NEW -- Set CMP0078 state to NEW -- The C compiler identification is AppleClang 11.0.0.11000033 -- The CXX compiler identification is AppleClang 11.0.0.11000033 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found ZLIB: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libz.tbd (found version "1.2.11") -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE
-- Found Protozero: third_party/protozero/include (found suitable version "1.6.2", minimum required is "1.5.1") -- Found EXPAT: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libexpat.tbd (found version "2.2.6") -- Found BZip2: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libbz2.tbd (found version "1.0.6") -- Looking for BZ2_bzCompressInit -- Looking for BZ2_bzCompressInit - found -- Found Osmium: third_party/libosmium/include
-- OSMium found at third_party/libosmium/include;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include;third_party/protozero/include -- OSMium library found at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libz.tbd;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libexpat.tbd;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libbz2.tbd -- Found GDAL: /opt/anaconda3/envs/bike/lib/libgdal.dylib (found suitable version "3.2.0", minimum required is "2.2") -- GDAL headers found at /usr/local/include -- GDAL library found at /opt/anaconda3/envs/bike/lib/libgdal.dylib -- Found Boost 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/Boost-1.70.0 -- Requested configuration: QUIET REQUIRED COMPONENTS serialization -- Found boost_headers 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/boost_headers-1.70.0 -- Found boost_serialization 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/boost_serialization-1.70.0 -- libboost_serialization.a -- Adding boost_serialization dependencies: headers -- Found Boost: /opt/anaconda3/envs/bike/lib/cmake/Boost-1.70.0/BoostConfig.cmake (found suitable version "1.70.0", minimum required is "1.54.0") found components: serialization -- Boost headers found at /opt/anaconda3/envs/bike/include -- Boost library found at Boost::serialization -- Boost library version 1_70 -- Found OpenMP_C: -Xclang -fopenmp (found version "3.1") -- Found OpenMP_CXX: -Xclang -fopenmp (found version "3.1") -- Found OpenMP: TRUE (found version "3.1")
-- OpenMP_HEADERS found at /usr/local/include -- OpenMP_CXX_LIBRARIES found at /usr/local/lib/libomp.dylib -- Copy h3 header to third_party/h3/src/h3lib/include/h3api.h -- Found SWIG: /usr/local/bin/swig (found version "4.0.2")
-- Swig version is 4.0.2 -- Found PythonLibs: /opt/anaconda3/envs/bike/lib/libpython3.8.dylib (found suitable version "3.8.5", minimum required is "3.8") -- Python header found at /opt/anaconda3/envs/bike/include/python3.8 -- Python library found at /opt/anaconda3/envs/bike/lib/libpython3.8.dylib -- Include h3 headers at /Users/chocholatethunder/Documents/PhD/code/fmm/build/third_party/h3/src/h3lib/include;/Users/chocholatethunder/Documents/PhD/code/fmm/third_party/h3/src/h3lib/include -- Using swig add library -- Configuring done -- Generating done -- Build files have been written to: /Users/chocholatethunder/Documents/PhD/code/fmm/build

Scanning dependencies of target CORE Scanning dependencies of target IO Scanning dependencies of target ALGORITHM Scanning dependencies of target H3_OBJ [ 1%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/algos.c.o [ 3%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/baseCells.c.o [ 5%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/bbox.c.o [ 7%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/coordijk.c.o [ 8%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/faceijk.c.o [ 10%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/geoCoord.c.o [ 12%] Building CXX object CMakeFiles/ALGORITHM.dir/src/algorithm/geom_algorithm.cpp.o [ 14%] Building CXX object CMakeFiles/CORE.dir/src/core/geometry.cpp.o [ 16%] Building CXX object CMakeFiles/IO.dir/src/io/gps_reader.cpp.o [ 17%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/h3Index.c.o [ 19%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/h3UniEdge.c.o [ 21%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/linkedGeo.c.o [ 23%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/localij.c.o [ 25%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/mathExtensions.c.o [ 26%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/polygon.c.o [ 28%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vec2d.c.o [ 30%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vec3d.c.o [ 32%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vertex.c.o [ 33%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vertexGraph.c.o [ 33%] Built target H3_OBJ [ 35%] Building CXX object CMakeFiles/IO.dir/src/io/mm_writer.cpp.o In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/core/geometry.cpp:10: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/third_party/boost/geometry/extensions/gis/io/wkb/read_wkb.hpp:18: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/third_party/boost/geometry/extensions/gis/io/wkb/detail/parser.hpp:32: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/third_party/boost/geometry/extensions/gis/io/wkb/detail/endian.hpp:29: In file included from /usr/local/include/boost/detail/endian.hpp:9: /usr/local/include/boost/predef/detail/endiancompat.h:11:9: warning: The use of BOOST_ENDIAN and BOOST_BYTE_ORDER is deprecated. Please include <boost/predef/other/endian.h> and use BOOSTENDIAN_BYTE instead [-W#pragma-messages]

pragma message("The use of BOOST_*_ENDIAN and BOOST_BYTE_ORDER is deprecated. Please in...

    ^

1 warning generated. [ 35%] Built target CORE Scanning dependencies of target CONFIG [ 37%] Building CXX object CMakeFiles/CONFIG.dir/src/config/gps_config.cpp.o [ 37%] Built target ALGORITHM Scanning dependencies of target UTIL [ 39%] Building CXX object CMakeFiles/UTIL.dir/src/util/util.cpp.o [ 39%] Built target UTIL [ 41%] Building CXX object CMakeFiles/CONFIG.dir/src/config/network_config.cpp.o Scanning dependencies of target STMATCH_OBJ [ 42%] Building CXX object CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_algorithm.cpp.o [ 42%] Built target IO [ 44%] Building CXX object CMakeFiles/CONFIG.dir/src/config/result_config.cpp.o [ 46%] Building CXX object CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_app.cpp.o Scanning dependencies of target MM_OBJ [ 48%] Building CXX object CMakeFiles/MM_OBJ.dir/src/mm/composite_graph.cpp.o [ 48%] Built target CONFIG Scanning dependencies of target NETWORK [ 50%] Building CXX object CMakeFiles/NETWORK.dir/src/network/bidirectional_network_graph.cpp.o Scanning dependencies of target FMM_OBJ [ 51%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_algorithm.cpp.o [ 53%] Building CXX object CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_app_config.cpp.o [ 55%] Building CXX object CMakeFiles/MM_OBJ.dir/src/mm/transition_graph.cpp.o [ 57%] Building CXX object CMakeFiles/NETWORK.dir/src/network/network.cpp.o [ 57%] Built target STMATCH_OBJ [ 58%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_app.cpp.o [ 58%] Built target MM_OBJ [ 60%] Building CXX object CMakeFiles/NETWORK.dir/src/network/network_graph.cpp.o Scanning dependencies of target PYTHONSTMATCH_OBJ [ 62%] Building CXX object python/CMakeFiles/PYTHONSTMATCH_OBJ.dir//src/mm/stmatch/stmatch_algorithm.cpp.o [ 64%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_app_config.cpp.o Scanning dependencies of target PYTHONFMM_OBJ [ 66%] Building CXX object python/CMakeFiles/PYTHONFMM_OBJ.dir//src/mm/fmm/fmm_algorithm.cpp.o [ 67%] Building CXX object CMakeFiles/NETWORK.dir/src/network/rtree.cpp.o [ 67%] Built target PYTHONSTMATCH_OBJ [ 69%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/ubodt.cpp.o [ 69%] Built target NETWORK [ 71%] Building CXX object python/CMakeFiles/PYTHONFMM_OBJ.dir/__/src/mm/fmm/ubodt.cpp.o [ 73%] Building CXX object python/CMakeFiles/PYTHONFMM_OBJ.dir/__/src/mm/fmm/ubodt_gen_algorithm.cpp.o [ 75%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/ubodt_gen_algorithm.cpp.o [ 76%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/ubodt_gen_app.cpp.o Scanning dependencies of target pyfmm_swig_compilation [ 78%] Swig compile /Users/chocholatethunder/Documents/PhD/code/fmm/python/fmm.i for python /Users/chocholatethunder/Documents/PhD/code/fmm/src/mm/h3mm/h3mm.hpp:30: Warning 314: 'print' is a python keyword, renaming to '_print' [ 78%] Built target pyfmm_swig_compilation [ 80%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/ubodt_gen_app_config.cpp.o [ 80%] Built target PYTHONFMM_OBJ Scanning dependencies of target h3mm [ 82%] Building CXX object CMakeFiles/h3mm.dir/src/app/h3mm.cpp.o Scanning dependencies of target stmatch [ 83%] Building CXX object CMakeFiles/stmatch.dir/src/app/stmatch.cpp.o Scanning dependencies of target pyfmmlib [ 85%] Linking CXX shared library libpyfmmlib.dylib [ 85%] Built target pyfmmlib Scanning dependencies of target pyfmm [ 87%] Building CXX object python/CMakeFiles/pyfmm.dir/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx.o /Users/chocholatethunder/Documents/PhD/code/fmm/build/python/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx:1780:7: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] 0, / tp_print / ^ /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here Py_DEPRECATED(3.8) int (tp_print)(PyObject , FILE *, int); ^ /opt/anaconda3/envs/bike/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                 ^

In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/build/python/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx:178: In file included from /opt/anaconda3/envs/bike/include/python3.8/Python.h:85: In file included from /opt/anaconda3/envs/bike/include/python3.8/pytime.h:6: In file included from /opt/anaconda3/envs/bike/include/python3.8/object.h:746: /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:177:16: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] typedef struct _typeobject { ^ /Users/chocholatethunder/Documents/PhD/code/fmm/build/python/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx:1790:23: note: in implicit copy assignment operator for '_typeobject' first required here swigpyobject_type = tmp; ^ /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here Py_DEPRECATED(3.8) int (tp_print)(PyObject , FILE *, int); ^ /opt/anaconda3/envs/bike/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                 ^

In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/build/python/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx:178: In file included from /opt/anaconda3/envs/bike/include/python3.8/Python.h:85: In file included from /opt/anaconda3/envs/bike/include/python3.8/pytime.h:6: In file included from /opt/anaconda3/envs/bike/include/python3.8/object.h:746: /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:177:16: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] typedef struct _typeobject { ^ /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here Py_DEPRECATED(3.8) int (tp_print)(PyObject , FILE *, int); ^ /opt/anaconda3/envs/bike/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                 ^

/Users/chocholatethunder/Documents/PhD/code/fmm/build/python/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx:1947:7: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] 0, / tp_print / ^ /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here Py_DEPRECATED(3.8) int (tp_print)(PyObject , FILE *, int); ^ /opt/anaconda3/envs/bike/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                 ^

/Users/chocholatethunder/Documents/PhD/code/fmm/build/python/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx:35093:9: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] 0, / tp_print / ^ /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here Py_DEPRECATED(3.8) int (tp_print)(PyObject , FILE *, int); ^ /opt/anaconda3/envs/bike/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                 ^

[ 87%] Built target FMM_OBJ Scanning dependencies of target ubodt_gen [ 89%] Linking CXX executable stmatch [ 91%] Building CXX object CMakeFiles/ubodt_gen.dir/src/app/ubodt_gen_app.cpp.o [ 91%] Built target stmatch Scanning dependencies of target fmm [ 92%] Building CXX object CMakeFiles/fmm.dir/src/app/fmm.cpp.o [ 94%] Linking CXX executable ubodt_gen [ 94%] Built target ubodt_gen [ 96%] Linking CXX executable h3mm [ 96%] Built target h3mm [ 98%] Linking CXX executable fmm [ 98%] Built target fmm 5 warnings generated. [100%] Linking CXX shared module _pyfmm.so [100%] Built target pyfmm

sudo make install Password: [ 1%] Built target ALGORITHM [ 3%] Built target CORE [ 32%] Built target H3_OBJ [ 35%] Built target IO [ 41%] Built target CONFIG [ 42%] Built target UTIL [ 46%] Built target h3mm [ 51%] Built target STMATCH_OBJ [ 55%] Built target MM_OBJ [ 62%] Built target NETWORK [ 66%] Built target stmatch [ 78%] Built target FMM_OBJ [ 82%] Built target ubodt_gen [ 85%] Built target fmm [ 87%] Built target PYTHONSTMATCH_OBJ [ 92%] Built target PYTHONFMM_OBJ [ 94%] Built target pyfmmlib [ 96%] Built target pyfmm_swig_compilation [100%] Built target pyfmm Install the project... -- Install configuration: "Release" -- Installing: /usr/local/bin/fmm -- Installing: /usr/local/bin/ubodt_gen -- Installing: /usr/local/bin/stmatch -- Installing: /usr/local/bin/h3mm

but when I run

Python 3.8.5 (default, Sep 4 2020, 02:22:02) [Clang 10.0.0 ] :: Anaconda, Inc. on darwin Type "help", "copyright", "credits" or "license" for more information.

import fmm Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module named 'fmm'

nickbent commented 3 years ago

I went into the python folder in the build and tried to run from there, since it seems like it is just a linking problem but then got

Python 3.8.5 (default, Sep 4 2020, 02:22:02) [Clang 10.0.0 ] :: Anaconda, Inc. on darwin Type "help", "copyright", "credits" or "license" for more information.

import fmm [1] 48245 segmentation fault python

cyang-kth commented 3 years ago

Can you try to pull the latest version? I update the code to install python binding to the folder of Python site-packages (no need to modify the Path variable) and also detect the conda python package.

nickbent commented 3 years ago

I changed the cmake file in poython to 3.8 required and changed print > print()

these are the results

-- CMAKE version 3.18.4 -- Set CMP0074 state to NEW -- Set CMP0086 state to NEW -- Set CMP0078 state to NEW -- Set CONDA_PREFIX /opt/anaconda3/envs/bike -- OSMium found at third_party/libosmium/include;/opt/anaconda3/envs/bike/include;third_party/protozero/include -- OSMium library found at /opt/anaconda3/envs/bike/lib/libz.dylib;/opt/anaconda3/envs/bike/lib/libexpat.dylib;/opt/anaconda3/envs/bike/lib/libbz2.dylib -- GDAL headers found at /opt/anaconda3/envs/bike/include -- GDAL library found at /opt/anaconda3/envs/bike/lib/libgdal.dylib -- Found Boost 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/Boost-1.70.0 -- Requested configuration: QUIET REQUIRED COMPONENTS serialization -- Found boost_headers 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/boost_headers-1.70.0 -- Found boost_serialization 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/boost_serialization-1.70.0 -- libboost_serialization.a -- Adding boost_serialization dependencies: headers -- Boost headers found at /opt/anaconda3/envs/bike/include -- Boost library found at Boost::serialization -- Boost library version 1_70 -- OpenMP_HEADERS found at /usr/local/include -- OpenMP_CXX_LIBRARIES found at /usr/local/lib/libomp.dylib -- Copy h3 header to third_party/h3/src/h3lib/include/h3api.h -- Installation folder /usr/local -- Swig version is 4.0.2 -- Python header found at /opt/anaconda3/envs/bike/include/python3.8 -- Python library found at /opt/anaconda3/envs/bike/lib/libpython3.8.dylib -- Python packages /opt/anaconda3/envs/bike/lib/python3.8/site-packages -- Using swig add library -- Configuring done -- Generating done -- Build files have been written to: /Users/chocholatethunder/Documents/PhD/code/fmm/build

Scanning dependencies of target FMM_OBJ Scanning dependencies of target CORE Scanning dependencies of target STMATCH_OBJ Scanning dependencies of target ALGORITHM [ 1%] Building CXX object CMakeFiles/ALGORITHM.dir/src/algorithm/geom_algorithm.cpp.o [ 3%] Building CXX object CMakeFiles/CORE.dir/src/core/geometry.cpp.o [ 5%] Building CXX object CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_algorithm.cpp.o [ 7%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_algorithm.cpp.o In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/core/geometry.cpp:10: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/third_party/boost/geometry/extensions/gis/io/wkb/read_wkb.hpp:18: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/third_party/boost/geometry/extensions/gis/io/wkb/detail/parser.hpp:32: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/third_party/boost/geometry/extensions/gis/io/wkb/detail/endian.hpp:29: In file included from /opt/anaconda3/envs/bike/include/boost/detail/endian.hpp:9: /opt/anaconda3/envs/bike/include/boost/predef/detail/endiancompat.h:11:9: warning: The use of BOOST_ENDIAN and BOOST_BYTE_ORDER is deprecated. Please include <boost/predef/other/endian.h> and use BOOSTENDIAN_BYTE instead [-W#pragma-messages]

pragma message("The use of BOOST_*_ENDIAN and BOOST_BYTE_ORDER is deprecated. Please in...

    ^

In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/mm/stmatch/stmatch_algorithm.cpp:6: /Users/chocholatethunder/Documents/PhD/code/fmm/src/io/mm_writer.hpp:23:10: fatal error: 'omp.h' file not found

include

     ^~~~~~~

1 error generated. make[2]: [CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_algorithm.cpp.o] Error 1 make[1]: [CMakeFiles/STMATCH_OBJ.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 9%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_app.cpp.o In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/mm/fmm/fmm_algorithm.cpp:10: /Users/chocholatethunder/Documents/PhD/code/fmm/src/io/mm_writer.hpp:23:10: fatal error: 'omp.h' file not found

include

     ^~~~~~~

1 error generated. make[2]: [CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_algorithm.cpp.o] Error 1 make[2]: Waiting for unfinished jobs.... 1 warning generated. [ 9%] Built target CORE [ 9%] Built target ALGORITHM In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/mm/fmm/fmm_app.cpp:7: /Users/chocholatethunder/Documents/PhD/code/fmm/src/io/mm_writer.hpp:23:10: fatal error: 'omp.h' file not found

include

     ^~~~~~~

1 error generated. make[2]: [CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_app.cpp.o] Error 1 make[1]: [CMakeFiles/FMM_OBJ.dir/all] Error 2 make: *** [all] Error 2

looked inside /opt/anaconda3/envs/bike/include/python3.8/ and could not find omp.h

cyang-kth commented 3 years ago

Please delete the previous build cache file under the build folder and rerun cmake

rm -r CMakeCache.txt CMakeFiles
cmake ..
nickbent commented 3 years ago

I always remove the build cache before rebuilding

cyang-kth commented 3 years ago

From this information, the omp.h should be found at this location:

-- OpenMP_HEADERS found at /usr/local/include
-- OpenMP_CXX_LIBRARIES found at /usr/local/lib/libomp.dylib

You can also check the build log on this travis

https://travis-ci.org/github/cyang-kth/fmm/jobs/744239358

nickbent commented 3 years ago

I do have them there, did it just not link properly maybe?

cyang-kth commented 3 years ago

I see that from my local machine and the travis those two lines

-- Found OpenMP_C: -Xclang -fopenmp (found version "3.1") 
-- Found OpenMP_CXX: -Xclang -fopenmp (found version "3.1") 

However, it is missing from your log.

Did you run this command before?

brew install libomp
nickbent commented 3 years ago

yes. Also checked one of my previous build attempts and found those two lines

cmake .. -DPYTHON_INCLUDE_DIR=/opt/anaconda3/envs/bike/include/python3.8/ -DPYTHON_LIBRARY=/opt/anaconda3/envs/bike/lib/libpython3.8.dylib -DPYTHON_EXECUTABLE:FILEPATH=/opt/anaconda3/envs/bike/bin/python3.8 -- CMAKE version 3.18.4 -- Set CMP0074 state to NEW -- Set CMP0086 state to NEW -- Set CMP0078 state to NEW -- The C compiler identification is AppleClang 11.0.0.11000033 -- The CXX compiler identification is AppleClang 11.0.0.11000033 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found ZLIB: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libz.tbd (found version "1.2.11") -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE
-- Found Protozero: third_party/protozero/include (found suitable version "1.6.2", minimum required is "1.5.1") -- Found EXPAT: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libexpat.tbd (found version "2.2.6") -- Found BZip2: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libbz2.tbd (found version "1.0.6") -- Looking for BZ2_bzCompressInit -- Looking for BZ2_bzCompressInit - found -- Found Osmium: third_party/libosmium/include
-- OSMium found at third_party/libosmium/include;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include;third_party/protozero/include -- OSMium library found at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libz.tbd;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libexpat.tbd;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libbz2.tbd -- Found GDAL: /opt/anaconda3/envs/bike/lib/libgdal.dylib (found suitable version "3.2.0", minimum required is "2.2") -- GDAL headers found at /usr/local/include -- GDAL library found at /opt/anaconda3/envs/bike/lib/libgdal.dylib -- Found Boost 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/Boost-1.70.0 -- Requested configuration: QUIET REQUIRED COMPONENTS serialization -- Found boost_headers 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/boost_headers-1.70.0 -- Found boost_serialization 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/boost_serialization-1.70.0 -- libboost_serialization.a -- Adding boost_serialization dependencies: headers -- Found Boost: /opt/anaconda3/envs/bike/lib/cmake/Boost-1.70.0/BoostConfig.cmake (found suitable version "1.70.0", minimum required is "1.54.0") found components: serialization -- Boost headers found at /opt/anaconda3/envs/bike/include -- Boost library found at Boost::serialization -- Boost library version 1_70 -- Found OpenMP_C: -Xclang -fopenmp (found version "3.1") -- Found OpenMP_CXX: -Xclang -fopenmp (found version "3.1") -- Found OpenMP: TRUE (found version "3.1")
-- OpenMP_HEADERS found at /usr/local/include -- OpenMP_CXX_LIBRARIES found at /usr/local/lib/libomp.dylib -- Copy h3 header to third_party/h3/src/h3lib/include/h3api.h -- Found SWIG: /usr/local/bin/swig (found version "4.0.2")
-- Swig version is 4.0.2 -- Found PythonLibs: /opt/anaconda3/envs/bike/lib/libpython3.8.dylib (found suitable version "3.8.5", minimum required is "3.8") -- Python header found at /opt/anaconda3/envs/bike/include/python3.8 -- Python library found at /opt/anaconda3/envs/bike/lib/libpython3.8.dylib -- Include h3 headers at /Users/chocholatethunder/Documents/PhD/code/fmm/build/third_party/h3/src/h3lib/include;/Users/chocholatethunder/Documents/PhD/code/fmm/third_party/h3/src/h3lib/include -- Using swig add library -- Configuring done -- Generating done -- Build files have been written to: /Users/chocholatethunder/Documents/PhD/code/fmm/build

nickbent commented 3 years ago

dont know what I did different in this build but know it does have those line

-- CMAKE version 3.18.4 -- Set CMP0074 state to NEW -- Set CMP0086 state to NEW -- Set CMP0078 state to NEW -- The C compiler identification is AppleClang 11.0.0.11000033 -- The CXX compiler identification is AppleClang 11.0.0.11000033 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Conda: /opt/anaconda3/envs/bike
-- Set CONDA_PREFIX /opt/anaconda3/envs/bike -- Found ZLIB: /opt/anaconda3/envs/bike/lib/libz.dylib (found version "1.2.11") -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE
-- Found Protozero: third_party/protozero/include (found suitable version "1.6.2", minimum required is "1.5.1") -- Found EXPAT: /opt/anaconda3/envs/bike/lib/libexpat.dylib (found version "2.2.10") -- Found BZip2: /opt/anaconda3/envs/bike/lib/libbz2.dylib (found version "1.0.8") -- Looking for BZ2_bzCompressInit -- Looking for BZ2_bzCompressInit - found -- Found Osmium: third_party/libosmium/include
-- OSMium found at third_party/libosmium/include;/opt/anaconda3/envs/bike/include;third_party/protozero/include -- OSMium library found at /opt/anaconda3/envs/bike/lib/libz.dylib;/opt/anaconda3/envs/bike/lib/libexpat.dylib;/opt/anaconda3/envs/bike/lib/libbz2.dylib -- Found GDAL: /opt/anaconda3/envs/bike/lib/libgdal.dylib (found suitable version "2.3.3", minimum required is "2.2") -- GDAL headers found at /opt/anaconda3/envs/bike/include -- GDAL library found at /opt/anaconda3/envs/bike/lib/libgdal.dylib -- Found Boost 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/Boost-1.70.0 -- Requested configuration: QUIET REQUIRED COMPONENTS serialization -- Found boost_headers 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/boost_headers-1.70.0 -- Found boost_serialization 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/boost_serialization-1.70.0 -- libboost_serialization.a -- Adding boost_serialization dependencies: headers -- Found Boost: /opt/anaconda3/envs/bike/lib/cmake/Boost-1.70.0/BoostConfig.cmake (found suitable version "1.70.0", minimum required is "1.56.0") found components: serialization -- Boost headers found at /opt/anaconda3/envs/bike/include -- Boost library found at Boost::serialization -- Boost library version 1_70 -- Found OpenMP_C: -Xclang -fopenmp (found version "3.1") -- Found OpenMP_CXX: -Xclang -fopenmp (found version "3.1") -- Found OpenMP: TRUE (found version "3.1")
-- OpenMP_HEADERS found at /usr/local/include -- OpenMP_CXX_LIBRARIES found at /usr/local/lib/libomp.dylib -- Copy h3 header to third_party/h3/src/h3lib/include/h3api.h -- Installation folder /usr/local -- Found SWIG: /usr/local/bin/swig (found version "4.0.2")
-- Swig version is 4.0.2 -- Found PythonInterp: /opt/anaconda3/envs/bike/bin/python3.8 (found suitable version "3.8.5", minimum required is "3.8") -- Found PythonLibs: /opt/anaconda3/envs/bike/lib/libpython3.8.dylib (found suitable version "3.8.5", minimum required is "3.8") -- Python header found at /opt/anaconda3/envs/bike/include/python3.8 -- Python library found at /opt/anaconda3/envs/bike/lib/libpython3.8.dylib -- Python packages /opt/anaconda3/envs/bike/lib/python3.8/site-packages -- Using swig add library -- Configuring done -- Generating done -- Build files have been written to: /Users/chocholatethunder/Documents/PhD/code/fmm/build

and then it gets farther in the make -j4 command but it still fails because it can not find omp.h

Scanning dependencies of target ALGORITHM Scanning dependencies of target MM_OBJ Scanning dependencies of target IO Scanning dependencies of target H3_OBJ [ 1%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/algos.c.o [ 3%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/baseCells.c.o [ 5%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/bbox.c.o [ 7%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/coordijk.c.o [ 9%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/faceijk.c.o [ 11%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/geoCoord.c.o [ 13%] Building CXX object CMakeFiles/ALGORITHM.dir/src/algorithm/geom_algorithm.cpp.o [ 15%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/h3Index.c.o [ 17%] Building CXX object CMakeFiles/IO.dir/src/io/gps_reader.cpp.o [ 19%] Building CXX object CMakeFiles/MM_OBJ.dir/src/mm/composite_graph.cpp.o [ 21%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/h3UniEdge.c.o [ 23%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/linkedGeo.c.o [ 25%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/localij.c.o [ 26%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/mathExtensions.c.o [ 28%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/polygon.c.o [ 30%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vec2d.c.o [ 32%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vec3d.c.o [ 34%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vertex.c.o [ 36%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vertexGraph.c.o [ 36%] Built target H3_OBJ [ 38%] Building CXX object CMakeFiles/IO.dir/src/io/mm_writer.cpp.o In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/io/mm_writer.cpp:10: /Users/chocholatethunder/Documents/PhD/code/fmm/src/io/mm_writer.hpp:23:10: fatal error: 'omp.h' file not found

include

     ^~~~~~~

1 error generated. make[2]: [CMakeFiles/IO.dir/src/io/mm_writer.cpp.o] Error 1 make[2]: Waiting for unfinished jobs.... [ 40%] Building CXX object CMakeFiles/MM_OBJ.dir/src/mm/transition_graph.cpp.o [ 40%] Built target ALGORITHM Scanning dependencies of target CONFIG [ 42%] Building CXX object CMakeFiles/CONFIG.dir/src/config/gps_config.cpp.o Scanning dependencies of target NETWORK [ 42%] Built target MM_OBJ [ 44%] Building CXX object CMakeFiles/CONFIG.dir/src/config/network_config.cpp.o [ 46%] Building CXX object CMakeFiles/NETWORK.dir/src/network/bidirectional_network_graph.cpp.o make[1]: [CMakeFiles/IO.dir/all] Error 2 make[1]: Waiting for unfinished jobs.... [ 48%] Building CXX object CMakeFiles/CONFIG.dir/src/config/result_config.cpp.o [ 50%] Building CXX object CMakeFiles/NETWORK.dir/src/network/network.cpp.o [ 51%] Building CXX object CMakeFiles/NETWORK.dir/src/network/network_graph.cpp.o [ 53%] Building CXX object CMakeFiles/NETWORK.dir/src/network/rtree.cpp.o [ 53%] Built target CONFIG [ 53%] Built target NETWORK make: *** [all] Error 2

cyang-kth commented 3 years ago

You can run the command below to check the detailed make information, I am not sure why it fails. Since it builds successfully on the Travis and my local machine, it is hard to figure out the problem.

make verbose=1
nickbent commented 3 years ago

When I do make verbose=1 it fails earlier ...

Scanning dependencies of target ALGORITHM [ 1%] Building CXX object CMakeFiles/ALGORITHM.dir/src/algorithm/geom_algorithm.cpp.o [ 1%] Built target ALGORITHM Scanning dependencies of target STMATCH_OBJ [ 3%] Building CXX object CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_algorithm.cpp.o In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/mm/stmatch/stmatch_algorithm.cpp:6: /Users/chocholatethunder/Documents/PhD/code/fmm/src/io/mm_writer.hpp:23:10: fatal error: 'omp.h' file not found

include

     ^~~~~~~

1 error generated. make[2]: [CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_algorithm.cpp.o] Error 1 make[1]: [CMakeFiles/STMATCH_OBJ.dir/all] Error 2 make: *** [all] Error 2

nickbent commented 3 years ago

I tried to switch to g and g++ as compiler but with the same results. Added set(CMAKE_C_COMPILER "gcc") set(CMAKE_CXX_COMPILER "/usr/bin/g++") to CMake file

-- CMAKE version 3.18.4 -- Set CMP0074 state to NEW -- Set CMP0086 state to NEW -- Set CMP0078 state to NEW -- The C compiler identification is AppleClang 11.0.0.11000033 -- The CXX compiler identification is AppleClang 11.0.0.11000033 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/gcc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/g++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Conda: /opt/anaconda3/envs/bike
-- Set CONDA_PREFIX /opt/anaconda3/envs/bike -- Found ZLIB: /opt/anaconda3/envs/bike/lib/libz.dylib (found version "1.2.11") -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE
-- Found Protozero: third_party/protozero/include (found suitable version "1.6.2", minimum required is "1.5.1") -- Found EXPAT: /opt/anaconda3/envs/bike/lib/libexpat.dylib (found version "2.2.10") -- Found BZip2: /opt/anaconda3/envs/bike/lib/libbz2.dylib (found version "1.0.8") -- Looking for BZ2_bzCompressInit -- Looking for BZ2_bzCompressInit - found -- Found Osmium: third_party/libosmium/include
-- OSMium found at third_party/libosmium/include;/opt/anaconda3/envs/bike/include;third_party/protozero/include -- OSMium library found at /opt/anaconda3/envs/bike/lib/libz.dylib;/opt/anaconda3/envs/bike/lib/libexpat.dylib;/opt/anaconda3/envs/bike/lib/libbz2.dylib -- Found GDAL: /opt/anaconda3/envs/bike/lib/libgdal.dylib (found suitable version "2.3.3", minimum required is "2.2") -- GDAL headers found at /opt/anaconda3/envs/bike/include -- GDAL library found at /opt/anaconda3/envs/bike/lib/libgdal.dylib -- Found Boost 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/Boost-1.70.0 -- Requested configuration: QUIET REQUIRED COMPONENTS serialization -- Found boost_headers 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/boost_headers-1.70.0 -- Found boost_serialization 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/boost_serialization-1.70.0 -- libboost_serialization.a -- Adding boost_serialization dependencies: headers -- Found Boost: /opt/anaconda3/envs/bike/lib/cmake/Boost-1.70.0/BoostConfig.cmake (found suitable version "1.70.0", minimum required is "1.56.0") found components: serialization -- Boost headers found at /opt/anaconda3/envs/bike/include -- Boost library found at Boost::serialization -- Boost library version 1_70 -- Found OpenMP_C: -Xclang -fopenmp (found version "3.1") -- Found OpenMP_CXX: -Xclang -fopenmp (found version "3.1") -- Found OpenMP: TRUE (found version "3.1")
-- OpenMP_HEADERS found at /usr/local/include -- OpenMP_CXX_LIBRARIES found at /usr/local/lib/libomp.dylib -- Copy h3 header to third_party/h3/src/h3lib/include/h3api.h -- Installation folder /usr/local -- Found SWIG: /usr/local/bin/swig (found version "4.0.2")
-- Swig version is 4.0.2 -- Found PythonInterp: /opt/anaconda3/envs/bike/bin/python3.8 (found suitable version "3.8.5", minimum required is "3.8") -- Found PythonLibs: /opt/anaconda3/envs/bike/lib/libpython3.8.dylib (found suitable version "3.8.5", minimum required is "3.8") -- Python header found at /opt/anaconda3/envs/bike/include/python3.8 -- Python library found at /opt/anaconda3/envs/bike/lib/libpython3.8.dylib -- Python packages /opt/anaconda3/envs/bike/lib/python3.8/site-packages -- Using swig add library -- Configuring done -- Generating done -- Build files have been written to: /Users/chocholatethunder/Documents/PhD/code/fmm/build

Scanning dependencies of target ALGORITHM Scanning dependencies of target CORE Scanning dependencies of target FMM_OBJ Scanning dependencies of target STMATCH_OBJ [ 1%] Building CXX object CMakeFiles/CORE.dir/src/core/geometry.cpp.o [ 3%] Building CXX object CMakeFiles/ALGORITHM.dir/src/algorithm/geom_algorithm.cpp.o [ 5%] Building CXX object CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_algorithm.cpp.o [ 7%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_algorithm.cpp.o In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/core/geometry.cpp:10: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/third_party/boost/geometry/extensions/gis/io/wkb/read_wkb.hpp:18: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/third_party/boost/geometry/extensions/gis/io/wkb/detail/parser.hpp:32: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/third_party/boost/geometry/extensions/gis/io/wkb/detail/endian.hpp:29: In file included from /opt/anaconda3/envs/bike/include/boost/detail/endian.hpp:9: /opt/anaconda3/envs/bike/include/boost/predef/detail/endiancompat.h:11:9: warning: The use of BOOST_ENDIAN and BOOST_BYTE_ORDER is deprecated. Please include <boost/predef/other/endian.h> and use BOOSTENDIAN_BYTE instead [-W#pragma-messages]

pragma message("The use of BOOST_*_ENDIAN and BOOST_BYTE_ORDER is deprecated. Please include <boost/predef/other/endian.h> and us...

    ^

1 warning generated. [ 7%] Built target CORE [ 9%] Building CXX object CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_app.cpp.o In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/mm/stmatch/stmatch_algorithm.cpp:6: /Users/chocholatethunder/Documents/PhD/code/fmm/src/io/mm_writer.hpp:23:10: fatal error: 'omp.h' file not found

include

     ^~~~~~~

1 error generated. make[2]: [CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_algorithm.cpp.o] Error 1 make[2]: Waiting for unfinished jobs.... [ 11%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_app.cpp.o In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/mm/fmm/fmm_algorithm.cpp:10: /Users/chocholatethunder/Documents/PhD/code/fmm/src/io/mm_writer.hpp:23:10: fatal error: 'omp.h' file not found

include

     ^~~~~~~

1 error generated. make[2]: [CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_algorithm.cpp.o] Error 1 make[2]: Waiting for unfinished jobs.... Scanning dependencies of target MM_OBJ [ 13%] Building CXX object CMakeFiles/MM_OBJ.dir/src/mm/composite_graph.cpp.o [ 13%] Built target ALGORITHM Scanning dependencies of target H3_OBJ [ 15%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/algos.c.o [ 17%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/baseCells.c.o [ 19%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/bbox.c.o [ 21%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/coordijk.c.o In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/mm/stmatch/stmatch_app.cpp:5: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/mm/stmatch/stmatch_app.hpp:16: /Users/chocholatethunder/Documents/PhD/code/fmm/src/io/mm_writer.hpp:23:10: fatal error: 'omp.h' file not found

include

     ^~~~~~~

1 error generated. make[2]: [CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_app.cpp.o] Error 1 make[1]: [CMakeFiles/STMATCH_OBJ.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 23%] Building CXX object CMakeFiles/MM_OBJ.dir/src/mm/transition_graph.cpp.o [ 25%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/faceijk.c.o In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/mm/fmm/fmm_app.cpp:7: /Users/chocholatethunder/Documents/PhD/code/fmm/src/io/mm_writer.hpp:23:10: fatal error: 'omp.h' file not found

include

     ^~~~~~~

1 error generated. make[2]: [CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_app.cpp.o] Error 1 make[1]: [CMakeFiles/FMM_OBJ.dir/all] Error 2 [ 26%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/geoCoord.c.o [ 28%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/h3Index.c.o [ 30%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/h3UniEdge.c.o [ 32%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/linkedGeo.c.o [ 34%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/localij.c.o [ 36%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/mathExtensions.c.o [ 38%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/polygon.c.o [ 40%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vec2d.c.o [ 42%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vec3d.c.o [ 44%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vertex.c.o [ 46%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vertexGraph.c.o [ 46%] Built target H3_OBJ [ 46%] Built target MM_OBJ make: *** [all] Error 2

nickbent commented 3 years ago

finally got it to build added include_directories(/usr/local/include) into CMakeLists.txt

but getting a segmentation fault when I try to run it cmake .. -- CMAKE version 3.18.4 -- Set CMP0074 state to NEW -- Set CMP0086 state to NEW -- Set CMP0078 state to NEW -- The C compiler identification is AppleClang 11.0.0.11000033 -- The CXX compiler identification is AppleClang 11.0.0.11000033 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Conda: /opt/anaconda3/envs/bike
-- Set CONDA_PREFIX /opt/anaconda3/envs/bike -- Found ZLIB: /opt/anaconda3/envs/bike/lib/libz.dylib (found version "1.2.11") -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE
-- Found Protozero: third_party/protozero/include (found suitable version "1.6.2", minimum required is "1.5.1") -- Found EXPAT: /opt/anaconda3/envs/bike/lib/libexpat.dylib (found version "2.2.10") -- Found BZip2: /opt/anaconda3/envs/bike/lib/libbz2.dylib (found version "1.0.8") -- Looking for BZ2_bzCompressInit -- Looking for BZ2_bzCompressInit - found -- Found Osmium: third_party/libosmium/include
-- OSMium found at third_party/libosmium/include;/opt/anaconda3/envs/bike/include;third_party/protozero/include -- OSMium library found at /opt/anaconda3/envs/bike/lib/libz.dylib;/opt/anaconda3/envs/bike/lib/libexpat.dylib;/opt/anaconda3/envs/bike/lib/libbz2.dylib -- Found GDAL: /opt/anaconda3/envs/bike/lib/libgdal.dylib (found suitable version "2.3.3", minimum required is "2.2") -- GDAL headers found at /opt/anaconda3/envs/bike/include -- GDAL library found at /opt/anaconda3/envs/bike/lib/libgdal.dylib -- Found Boost 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/Boost-1.70.0 -- Requested configuration: QUIET REQUIRED COMPONENTS serialization -- Found boost_headers 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/boost_headers-1.70.0 -- Found boost_serialization 1.70.0 at /opt/anaconda3/envs/bike/lib/cmake/boost_serialization-1.70.0 -- libboost_serialization.a -- Adding boost_serialization dependencies: headers -- Found Boost: /opt/anaconda3/envs/bike/lib/cmake/Boost-1.70.0/BoostConfig.cmake (found suitable version "1.70.0", minimum required is "1.56.0") found components: serialization -- Boost headers found at /opt/anaconda3/envs/bike/include -- Boost library found at Boost::serialization -- Boost library version 1_70 -- Found OpenMP_C: -Xclang -fopenmp (found version "3.1") -- Found OpenMP_CXX: -Xclang -fopenmp (found version "3.1") -- Found OpenMP: TRUE (found version "3.1")
-- OpenMP_HEADERS found at /usr/local/include -- OpenMP_CXX_LIBRARIES found at /usr/local/lib/libomp.dylib -- Copy h3 header to third_party/h3/src/h3lib/include/h3api.h -- Installation folder /usr/local -- Found SWIG: /usr/local/bin/swig (found version "4.0.2")
-- Swig version is 4.0.2 -- Found PythonInterp: /opt/anaconda3/envs/bike/bin/python3.8 (found suitable version "3.8.5", minimum required is "3.8") -- Found PythonLibs: /opt/anaconda3/envs/bike/lib/libpython3.8.dylib (found suitable version "3.8.5", minimum required is "3.8") -- Python header found at /opt/anaconda3/envs/bike/include/python3.8 -- Python library found at /opt/anaconda3/envs/bike/lib/libpython3.8.dylib -- Python packages /opt/anaconda3/envs/bike/lib/python3.8/site-packages -- Using swig add library -- Configuring done -- Generating done -- Build files have been written to: /Users/chocholatethunder/Documents/PhD/code/fmm/build (bike) ➜ build git:(master) ✗ make -j4 Scanning dependencies of target CORE Scanning dependencies of target STMATCH_OBJ Scanning dependencies of target FMM_OBJ Scanning dependencies of target ALGORITHM [ 1%] Building CXX object CMakeFiles/CORE.dir/src/core/geometry.cpp.o [ 3%] Building CXX object CMakeFiles/ALGORITHM.dir/src/algorithm/geom_algorithm.cpp.o [ 5%] Building CXX object CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_algorithm.cpp.o [ 7%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_algorithm.cpp.o In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/src/core/geometry.cpp:10: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/third_party/boost/geometry/extensions/gis/io/wkb/read_wkb.hpp:18: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/third_party/boost/geometry/extensions/gis/io/wkb/detail/parser.hpp:32: In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/third_party/boost/geometry/extensions/gis/io/wkb/detail/endian.hpp:29: In file included from /opt/anaconda3/envs/bike/include/boost/detail/endian.hpp:9: /opt/anaconda3/envs/bike/include/boost/predef/detail/endiancompat.h:11:9: warning: The use of BOOST_ENDIAN and BOOST_BYTE_ORDER is deprecated. Please include <boost/predef/other/endian.h> and use BOOSTENDIAN_BYTE instead [-W#pragma-messages]

pragma message("The use of BOOST_*_ENDIAN and BOOST_BYTE_ORDER is deprecated. Please include <boost/predef/other/endian.h> and us...

    ^

1 warning generated. [ 7%] Built target CORE [ 9%] Building CXX object CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_app.cpp.o [ 9%] Built target ALGORITHM [ 11%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_app.cpp.o Scanning dependencies of target MM_OBJ [ 13%] Building CXX object CMakeFiles/STMATCH_OBJ.dir/src/mm/stmatch/stmatch_app_config.cpp.o [ 15%] Building CXX object CMakeFiles/MM_OBJ.dir/src/mm/composite_graph.cpp.o [ 17%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/fmm_app_config.cpp.o Scanning dependencies of target H3_OBJ [ 19%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/algos.c.o [ 21%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/baseCells.c.o [ 23%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/bbox.c.o [ 25%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/coordijk.c.o [ 26%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/faceijk.c.o [ 28%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/geoCoord.c.o [ 30%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/h3Index.c.o [ 32%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/h3UniEdge.c.o [ 34%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/linkedGeo.c.o [ 36%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/localij.c.o [ 38%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/mathExtensions.c.o [ 40%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/polygon.c.o [ 42%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vec2d.c.o [ 44%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vec3d.c.o [ 46%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vertex.c.o [ 48%] Building C object CMakeFiles/H3_OBJ.dir/third_party/h3/src/h3lib/lib/vertexGraph.c.o [ 48%] Built target H3_OBJ [ 50%] Building CXX object CMakeFiles/MM_OBJ.dir/src/mm/transition_graph.cpp.o Scanning dependencies of target IO [ 50%] Built target MM_OBJ [ 51%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/ubodt.cpp.o [ 53%] Building CXX object CMakeFiles/IO.dir/src/io/gps_reader.cpp.o [ 53%] Built target STMATCH_OBJ [ 55%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/ubodt_gen_algorithm.cpp.o Scanning dependencies of target CONFIG [ 57%] Building CXX object CMakeFiles/CONFIG.dir/src/config/gps_config.cpp.o [ 59%] Building CXX object CMakeFiles/IO.dir/src/io/mm_writer.cpp.o [ 61%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/ubodt_gen_app.cpp.o Scanning dependencies of target NETWORK [ 63%] Building CXX object CMakeFiles/NETWORK.dir/src/network/bidirectional_network_graph.cpp.o [ 65%] Building CXX object CMakeFiles/CONFIG.dir/src/config/network_config.cpp.o [ 65%] Built target IO Scanning dependencies of target UTIL [ 67%] Building CXX object CMakeFiles/UTIL.dir/src/util/util.cpp.o [ 69%] Building CXX object CMakeFiles/FMM_OBJ.dir/src/mm/fmm/ubodt_gen_app_config.cpp.o [ 71%] Building CXX object CMakeFiles/NETWORK.dir/src/network/network.cpp.o [ 71%] Built target UTIL [ 73%] Building CXX object CMakeFiles/CONFIG.dir/src/config/result_config.cpp.o [ 75%] Building CXX object CMakeFiles/NETWORK.dir/src/network/network_graph.cpp.o [ 75%] Built target FMM_OBJ [ 76%] Building CXX object CMakeFiles/NETWORK.dir/src/network/rtree.cpp.o [ 76%] Built target CONFIG Scanning dependencies of target pyfmm_swig_compilation [ 78%] Swig compile /Users/chocholatethunder/Documents/PhD/code/fmm/python/fmm.i for python /Users/chocholatethunder/Documents/PhD/code/fmm/src/mm/h3mm/h3mm.hpp:30: Warning 314: 'print' is a python keyword, renaming to '_print' [ 78%] Built target pyfmm_swig_compilation [ 78%] Built target NETWORK Scanning dependencies of target FMMLIB [ 80%] Linking CXX shared library libFMMLIB.dylib [ 80%] Built target FMMLIB Scanning dependencies of target stmatch Scanning dependencies of target fmm Scanning dependencies of target ubodt_gen Scanning dependencies of target h3mm [ 82%] Building CXX object CMakeFiles/ubodt_gen.dir/src/app/ubodt_gen_app.cpp.o [ 84%] Building CXX object CMakeFiles/h3mm.dir/src/app/h3mm.cpp.o [ 86%] Building CXX object CMakeFiles/fmm.dir/src/app/fmm.cpp.o [ 88%] Building CXX object CMakeFiles/stmatch.dir/src/app/stmatch.cpp.o [ 90%] Linking CXX executable ubodt_gen [ 90%] Built target ubodt_gen Scanning dependencies of target pyfmm [ 92%] Building CXX object python/CMakeFiles/pyfmm.dir/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx.o /Users/chocholatethunder/Documents/PhD/code/fmm/build/python/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx:1780:7: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] 0, / tp_print / ^ /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here Py_DEPRECATED(3.8) int (tp_print)(PyObject , FILE *, int); ^ /opt/anaconda3/envs/bike/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                 ^

In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/build/python/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx:178: In file included from /opt/anaconda3/envs/bike/include/python3.8/Python.h:85: In file included from /opt/anaconda3/envs/bike/include/python3.8/pytime.h:6: In file included from /opt/anaconda3/envs/bike/include/python3.8/object.h:746: /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:177:16: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] typedef struct _typeobject { ^ /Users/chocholatethunder/Documents/PhD/code/fmm/build/python/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx:1790:23: note: in implicit copy assignment operator for '_typeobject' first required here swigpyobject_type = tmp; ^ /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here Py_DEPRECATED(3.8) int (tp_print)(PyObject , FILE *, int); ^ /opt/anaconda3/envs/bike/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                 ^

In file included from /Users/chocholatethunder/Documents/PhD/code/fmm/build/python/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx:178: In file included from /opt/anaconda3/envs/bike/include/python3.8/Python.h:85: In file included from /opt/anaconda3/envs/bike/include/python3.8/pytime.h:6: In file included from /opt/anaconda3/envs/bike/include/python3.8/object.h:746: /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:177:16: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] typedef struct _typeobject { ^ /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here Py_DEPRECATED(3.8) int (tp_print)(PyObject , FILE *, int); ^ /opt/anaconda3/envs/bike/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                 ^

/Users/chocholatethunder/Documents/PhD/code/fmm/build/python/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx:1947:7: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] 0, / tp_print / ^ /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here Py_DEPRECATED(3.8) int (tp_print)(PyObject , FILE *, int); ^ /opt/anaconda3/envs/bike/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                 ^

[ 94%] Linking CXX executable fmm [ 96%] Linking CXX executable stmatch [ 96%] Built target fmm [ 96%] Built target stmatch /Users/chocholatethunder/Documents/PhD/code/fmm/build/python/CMakeFiles/pyfmm.dir/fmmPYTHON_wrap.cxx:35093:9: warning: 'tp_print' is deprecated [-Wdeprecated-declarations] 0, / tp_print / ^ /opt/anaconda3/envs/bike/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here Py_DEPRECATED(3.8) int (tp_print)(PyObject , FILE *, int); ^ /opt/anaconda3/envs/bike/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                 ^

[ 98%] Linking CXX executable h3mm [ 98%] Built target h3mm 5 warnings generated. [100%] Linking CXX shared module _fmm.so [100%] Built target pyfmm (bike) ➜ build git:(master) ✗ sudo make install Password: [ 1%] Built target ALGORITHM [ 3%] Built target CORE [ 17%] Built target FMM_OBJ [ 23%] Built target STMATCH_OBJ [ 26%] Built target MM_OBJ [ 57%] Built target H3_OBJ [ 61%] Built target IO [ 67%] Built target CONFIG [ 75%] Built target NETWORK [ 76%] Built target UTIL [ 78%] Built target FMMLIB [ 82%] Built target h3mm [ 86%] Built target stmatch [ 90%] Built target ubodt_gen [ 94%] Built target fmm [ 96%] Built target pyfmm_swig_compilation [100%] Built target pyfmm Install the project... -- Install configuration: "Release" -- Installing: /usr/local/lib/libFMMLIB.dylib -- Installing: /usr/local/bin/fmm -- Installing: /usr/local/bin/ubodt_gen -- Installing: /usr/local/bin/stmatch -- Installing: /usr/local/bin/h3mm -- Installing: /opt/anaconda3/envs/bike/lib/python3.8/site-packages/_fmm.so -- Installing: /opt/anaconda3/envs/bike/lib/python3.8/site-packages/fmm.py (bike) ➜ build git:(master) ✗ python Python 3.8.5 (default, Sep 4 2020, 02:22:02) [Clang 10.0.0 ] :: Anaconda, Inc. on darwin Type "help", "copyright", "credits" or "license" for more information.

import fmm [1] 23026 segmentation fault python

nickbent commented 3 years ago

full error

python -q -X faulthandler

import fmm Fatal Python error: Segmentation fault

Current thread 0x000000011104f5c0 (most recent call first): File "", line 219 in _call_with_frames_removed File "", line 1101 in create_module File "", line 556 in module_from_spec File "", line 657 in _load_unlocked File "", line 975 in _find_and_load_unlocked File "", line 991 in _find_and_load File "/opt/anaconda3/envs/bike/lib/python3.8/site-packages/fmm.py", line 15 in File "", line 219 in _call_with_frames_removed File "", line 783 in exec_module File "", line 671 in _load_unlocked File "", line 975 in _find_and_load_unlocked File "", line 991 in _find_and_load File "", line 1 in [1] 24221 segmentation fault python -q -X faulthandler

nickbent commented 3 years ago

Not sure if you want me to create a separate issue but tried to go the command line route instead and getting a segmentation fault as well

ubodt_gen --network bikes_road.shp --output ubodt.txt --delta 3 --use_omp [info][ubodt_gen_app_config.cpp:42 ] Start reading ubodt configuration from arguments [info][ubodt_gen_app_config.cpp:70 ] Finish with reading ubodt arg configuration [info][ubodt_gen_app_config.cpp:74 ] ---- Print configuration ---- [info][network_config.cpp:6 ] NetworkConfig [info][network_config.cpp:7 ] File name: bikes_road.shp [info][network_config.cpp:8 ] ID name: id [info][network_config.cpp:9 ] Source name: source [info][network_config.cpp:10 ] Target name: target [info][network_config.cpp:11 ] Mode name: drive [info][ubodt_gen_app_config.cpp:76 ] Delta 3 [info][ubodt_gen_app_config.cpp:77 ] Output file ubodt.txt [info][ubodt_gen_app_config.cpp:78 ] Log level 2-info [info][ubodt_gen_app_config.cpp:79 ] Use omp true [info][ubodt_gen_app_config.cpp:80 ] ---- Print configuration done ---- [info][ubodt_gen_app_config.cpp:97 ] Validating configuration for UBODT construction [info][ubodt_gen_app_config.cpp:118] Validating done. [info][network.cpp:91 ] Read network from file bikes_road.shp [1] 76526 segmentation fault ubodt_gen --network bikes_road.shp --output ubodt.txt --delta 3 --use_omp

cyang-kth commented 3 years ago

That one seems to be an issue with the shapefile. Does it work on the example shapefile or can you share the network shapefile with me so that I can check what is the issue there?

nickbent commented 3 years ago

yes it does work and here is the file

bikes_road.shp.zip

cyang-kth commented 3 years ago

@nickbent

The problem is that the shapefile is actually a collection of files rather than a single .shp file (in your case). It consists of multiple files with the same name and different extensions https://en.wikipedia.org/wiki/Shapefile

Mandatory files .shp — shape format; the feature geometry itself {content-type: x-gis/x-shapefile} .shx — shape index format; a positional index of the feature geometry to allow seeking forwards and backwards quickly {content-type: x-gis/x-shapefile} .dbf — attribute format; columnar attributes for each shape, in dBase IV format {content-type: application/octet-stream OR text/plain} Other files .prj — projection description, using a well-known text representation of coordinate reference systems {content-type: text/plain OR application/text}

You can check this folder for samples https://github.com/cyang-kth/fmm/tree/master/example/data

With only a single .shp file, it could not read the shapefile correctly.

nickbent commented 3 years ago

All these files are in the same folder as bikes_road.shp bikes_road.zip

ubodt_gen --network bikes_road.shp --output ubodt.txt --delta 3 --use_omp [info][ubodt_gen_app_config.cpp:42 ] Start reading ubodt configuration from arguments [info][ubodt_gen_app_config.cpp:70 ] Finish with reading ubodt arg configuration [info][ubodt_gen_app_config.cpp:74 ] ---- Print configuration ---- [info][network_config.cpp:6 ] NetworkConfig [info][network_config.cpp:7 ] File name: bikes_road.shp [info][network_config.cpp:8 ] ID name: id [info][network_config.cpp:9 ] Source name: source [info][network_config.cpp:10 ] Target name: target [info][network_config.cpp:11 ] Mode name: drive [info][ubodt_gen_app_config.cpp:76 ] Delta 3 [info][ubodt_gen_app_config.cpp:77 ] Output file ubodt.txt [info][ubodt_gen_app_config.cpp:78 ] Log level 2-info [info][ubodt_gen_app_config.cpp:79 ] Use omp true [info][ubodt_gen_app_config.cpp:80 ] ---- Print configuration done ---- [info][ubodt_gen_app_config.cpp:97 ] Validating configuration for UBODT construction [info][ubodt_gen_app_config.cpp:118] Validating done. [info][network.cpp:91 ] Read network from file bikes_road.shp [1] 80344 segmentation fault ubodt_gen --network bikes_road.shp --output ubodt.txt --delta 3 --use_omp

cyang-kth commented 3 years ago

@nickbent Your shapefile is not valid. Where do you download it? There is no geometry info in it although there is a string field with Geometry information. I cannot even visualize it in QGIS.

cyang-kth commented 3 years ago

If you are using PostGIS for processing the shapefile, I think you need to generate shapefile using standard tools, like this old version of tutorial https://github.com/cyang-kth/osm_mapmatching/tree/postgis#23-export-network-as-shapefile

nickbent commented 3 years ago

I created a geojson then I converted into a shapefile using. https://gdal.org/programs/ogr2ogr.html ogr2ogr -f "ESRI Shapefile" bike_roads_shape/bikes_road.shp fmm_bikes.json fmm_bikes.json.zip

cyang-kth commented 3 years ago

@nickbent

The GeoJSON file you are using is not valid.

This is one feature in your data

{
    "type": "Feature",
    "properties": {
      "Id": 0,
      "source": 0,
      "target": 1,
      "distance": 0.10715213122234031,
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [-73.59024203984517, 45.53258928101338],
          [-73.59119349032308, 45.53304449168603]
        ]
      }
    }
  }

The example from https://en.wikipedia.org/wiki/GeoJSON

{
      "type": "Feature",
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
        ]
      },
      "properties": {
        "prop0": "value0",
        "prop1": 0.0
      }
    }

Geometry should be the same level as type rather than a field of property.

nickbent commented 3 years ago

oh wow, that was a bad mistake lol. Finally working! The ubodt file is quite large though, is that normal?

cyang-kth commented 3 years ago

Your configuration of delta is too big since your data is in degree. Delta of 3 equals 300km, which is too big, you could choose a smaller value such as 3km (0.03) to store the result.