CMake 설치
sudo apt-get install -y cmake
VSCode Plugin
CMake 프로젝트 생성
다음의 순서로 프로젝트를 만든다
초기 프로젝트 구조는 다음과 같다
프로젝트 구성
다음과 같은 형태로 프로젝트를 구성한다다음과 같은 형태로 프로젝트를 구성한다
파일 작성
CMakeLists.txt
cmake_minimum_required(VERSION 3.0.0)
project(cmake_test LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_subdirectory(modules)
add_executable(cmake_test main.cpp)
add_executable(exec_module1 examples/exec_module1.cpp)
target_link_libraries(exec_module1 PRIVATE
module1)
modules/module1/include/module1/ClassMat.hpp
#ifndef HELLO_CMAKE_CLASSMAT_HPP
#define HELLO_CMAKE_CLASSMAT_HPP
#include "opencv2/opencv.hpp"
class ClassMat
{
public:
ClassMat() = default;
private:
cv::Mat cv_mat_;
};
#endif
modules/module1/src/ClassMat.cpp
#include "module1/ClassMat.hpp"
modules/module1/CMakeLists.txt
cmake_minimum_required(VERSION 3.0.0)
project(module1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(MODULE1_SOURCE_FILES
src/ClassMat.cpp
)
add_library(module1
${MODULE1_SOURCE_FILES}
)
find_package(OpenCV REQUIRED)
if (OpenCV_FOUND)
message(STATUS "OpenCV Found! - ${OpenCV_DIR}")
endif()
target_include_directories(module1 PUBLIC
include
${OpenCV_INCLUDE_DIRS}
)
target_link_libraries(module1 PRIVATE
${OpenCV_LIBS})
modules/CMakeLists.txt
add_subdirectory(module1)
examples/exec_module1.cpp
#include "module1/ClassMat.hpp"
#include <iostream>
int main()
{
const auto instance = ClassMat();
std::cout << "success!!" << std::endl;
return 0;
}
CMake 빌드
다음의 순서로 빌드를 진행한다
결과창을 확인하며 정상적으로 진행되는지 확인한다
빌드 파일 실행
다음의 순서로 빌드 파일을 실행한다
결과창을 확인하며 정상적으로 진행되는지 확인한다