ch2

6853 단어 SLAM
g++ 컴파일g++ helloSLAM.cpp 현재 디렉토리에서 실행 파일 생성 a.outa.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)#       

좋은 웹페이지 즐겨찾기