저번 글에서는 Clang64 환경에서 OSRM을 디버그 빌드 하였습니다. 모든 것이 처음이라 시행착오를 겪었는데요.
이번에는 새로운 마음으로 다시 Mingw64 환경에서 다시 빌드 해보기로 했습니다.
[Windows 환경] MSYS2, Clang64 및 Visual Studio Code
[Windows 환경] MSYS2, Clang64 및 Visual Studio Code 사용OSRM 실행하기 - 오류 해결Chat gpt 와 함께 OSRM 빌드해보기 - 디버그모드저번 글에서 릴리즈 모드로 빌드를 성공하기는 했으나, 실행 시 오류로 인해서
tobee.tistory.com
1.준비하기
다음과 같이 개발 환경을 설정해 줍니다.
pacman -S git make gcc cmake \
mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake \
mingw-w64-x86_64-boost mingw-w64-x86_64-protobuf \
mingw-w64-x86_64-libuv mingw-w64-x86_64-zlib \
mingw-w64-x86_64-tbb mingw-w64-x86_64-intel-tbb \
mingw-w64-x86_64-lua
2. CMake를 이용한 디버그 빌드
다음과 같이 -g 옵션을 이용해서 디버그 빌드를 해 줍니다.
빌드하기 전에 tar.hpp 와 microtar.c 파일을 변경해 줍니다.
(저번 글들에 있음)
rm -Rf *
cmake -G "MinGW Makefiles" \
-DCMAKE_CXX_FLAGS="-g -Wa,-mbig-obj -Wmisleading-indentation -flarge-source-files -DTOBEE" \
-DCMAKE_EXE_LINKER_FLAGS="${CMAKE_EXE_LINKER_FLAGS} -lws2_32 -lmswsock" \
-DDOXYGEN_EXECUTABLE=OFF \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_SYSTEM_NAME=Windows \
-DBOOST_INCLUDEDIR=/D/DEV/SDK/msys64/mingw64/include/boost \
-DBOOST_LIBRARYDIR=/D/DEV/SDK/msys64/mingw64/lib \
-DTBB_DIR=/D/DEV/SDK/msys64/mingw64/lib/cmake/TBB \
-DTBB_INCLUDE_DIR=/D/DEV/SDK/msys64/mingw64/include\tbb \
-DLUA_INCLUDE_DIR=/D/DEV/SDK/msys64/mingw64/include \
-DLUA_LIBRARIES=/D/DEV/SDK/msys64/mingw64/lib/liblua.a \
-DCMAKE_INSTALL_PREFIX=/D/DEV/Tools/osrm-backend/Debug \
..
mingw32-make -j5
mingw32-make install
3. 데이터 다운로드
아래 사이트에서 좀 작은 서울 데이터를 받아 줍니다.
파일 명: seoul-non-military.osm.pbf
Index of /download/
tiles.osm.kr
해당 디렉토리로 이동하여
cd /D/DEV/Tools/osrm-backend/data/
경로를 잡아 줍니다.
export PATH=/D/DEV/Tools/osrm-backend/Debug/bin:$PATH:.
4. 경로 데이터 생성하기
다음과 같이 데이터를 풀어주고 데이터 구조를 만들어 줍니다.
osrm-extract -p /home/AA160/osrm-backend/profiles/car.lua /D/DEV/Tools/osrm-backend/data/seoul-non-military.osm.pbf
osrm-contract /D/DEV/Tools/osrm-backend/data/seoul-non-military
5. 백엔드 서버 실행
모든 데이터 생성 작업이 끝났으면, 백엔드 서버를 실행하여 이상 유무를 확인 합니다.
osrm-routed.exe /D/DEV/Tools/osrm-backend/data/seoul-non-military.osrm
위와 같이 이상없이 실행되었다면 정상적으로 백엔드 서버가 실행되었다는 것입니다.
6. front-end 설치
이제 프론트 엔드를 설치 해 봅니다. 쓰기 쉬운 Nodejs Http 서버 모듈을 이용하면 될 듯 합니다.
가. 우선 Nodejs 를 설치합니다.
pacman -S mingw-w64-x86_64-nodejs
나. 그런다음 OSRM 프론트엔드를 위한 자바스크립트 라이브러리를 설치 하도록 합니다.
npm install leaflet leaflet-routing-machine
다. 마지막으로 이를 실행해 줄 서버를 설치 합니다.
npm install -g http-server
7. 테스트하기 – front-end에서 back-end 까지
서울 지역이기 때문에 오픈스트리트 맵을 이용해서 테스트 맵을 구성해 봅니다.
저번에 사용했던 코드를 사용하여 구성합니다.
폴더 구성
다음과 같이 폴더를 구성합니다.
# mkdir osrm-frontend
# cd osrm-frontend/
# pwd
/D/DEV/Tools/osrm-frontend
8.프론트엔드 서버 실행
다음과 같이 웹서버를 실행합니다.
백엔드 서버를 실행해 줍니다.
마지막으로 웹브라우저에서 접속해 봅시다
이상.
'프로그래밍' 카테고리의 다른 글
좋은 C 메인 함수를 작성하는 방법 (0) | 2025.01.11 |
---|---|
[Windows 환경] MSYS2, Clang64 용 OSRM 빌드 & 설치 (0) | 2025.01.08 |
[Windows 환경] MSYS2, Clang64 및 Visual Studio Code (0) | 2024.11.25 |
[Windows 환경] MSYS2, Clang64 및 Visual Studio Code 사용 (0) | 2024.11.24 |
Spring Boot AOP (0) | 2024.02.27 |