CMake 설치
sudo apt-get install -y cmake
VSCode Plugin
C/C++ Extension Pack - Visual Studio Marketplace
Extension for Visual Studio Code - Popular extensions for C++ development in Visual Studio Code.
marketplace.visualstudio.com
C/C++ Runner - Visual Studio Marketplace
Extension for Visual Studio Code - 🚀 Compile, run and debug single or multiple C/C++ files with ease. 🚀
marketplace.visualstudio.com
CMake Tools - Visual Studio Marketplace
Extension for Visual Studio Code - Extended CMake support in Visual Studio Code
marketplace.visualstudio.com
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 빌드
다음의 순서로 빌드를 진행한다
결과창을 확인하며 정상적으로 진행되는지 확인한다
빌드 파일 실행
다음의 순서로 빌드 파일을 실행한다
결과창을 확인하며 정상적으로 진행되는지 확인한다