ch2
6853 단어 SLAM
g++ helloSLAM.cpp
현재 디렉토리에서 실행 파일 생성 a.out
a.out은 터미널./a.out
에서 실행되며, 컨트롤러 프로그램을 직접 오른쪽 단추로 실행할 수 없습니다g++ helloSLAM.cpp -o helloSLAM
출력 실행 파일의 이름을 helloSLAM
로 지정합니다.cmake
보통 한 항목은 여러 개의 클래스를 포함하고, 각 클래스 간의 의존 관계를 충족시키려면 실행 가능한 파일과 라이브러리 파일을 구분해야 하며, g++ 명령은 길고 오류가 발생하기 쉽다.자세한 내용은 CSAPP에 나와 있습니다.그래서makefile는 자동으로 컴파일되며 프로젝트가 더 크고 복잡할 때 cmake 도구로makefile을 생성합니다.표준 단계:
mkdir build #
cd build
cmake .. # makefile
make #
sudo make install # ( /usr/local)
CMakeLists 작성txt
# cmake
cmake_minimum_required(VERSION 3.14)
# cmake ,
project(ch2)
# C++
set(CMAKE_CXX_STANDARD 14)
#
add_executable(helloSLAM helloSLAM.cpp)
# cpp hello , `libhello.a`
add_library(hello libHelloSLAM.cpp)
# , libhello_shared.so
add_library(hello_shared SHARED libHelloSLAM.cpp)
# ,
# , , include_directories()
add_executable(useLibHello useLibHello.cpp)
target_link_libraries(useLibHello hello_shared)# libhello_shared.so
프로젝트 폴더를 규범화하고 네 개의 하위 폴더를 만듭니다: src,bin,include,lib.CMakeLists 수정txt
# cmake
cmake_minimum_required(VERSION 3.5.1)
# cmake , <project>_BINARY_DIR <project>_SOURCE_DIR ${ }
project(ch2)
# C++
set(CMAKE_CXX_STANDARD 14)
#
set( EXECUTABLE_OUTPUT_PATH ${ch2_SOURCE_DIR}/bin )
#
set( LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib )
#
add_executable(helloSLAM ${PROJECT_SOURCE_DIR}/src/helloSLAM.cpp)
# cpp hello , libhello.a
add_library(hello ${PROJECT_SOURCE_DIR}/src/libHelloSLAM.cpp)
# , libhello_shared.so
add_library(hello_shared SHARED ${PROJECT_SOURCE_DIR}/src/libHelloSLAM.cpp)
# ,
# , , include_directories()
add_executable(useLibHello ${PROJECT_SOURCE_DIR}/src/useLibHello.cpp)
target_link_libraries(useLibHello hello_shared)# libhello_shared.so
include_directories(${ch2_SOURCE_DIR}/include)#
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ROS2에서 LiDAR Inertial SLAM최근 LiDAR Inertial SLAM인 LIO-SAM이 발표되었고, 저 안에서 LiDAR Inertial SLAM이 뜨겁습니다. LIO-SAM: Tightly-coupled Lidar Inertial Odomet...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.