반응형

전체 카테고리 209

[CMake] Library Options : 라이브러리에 옵션을 추가하기

소제목 이번에는 CMake에서 각각의 라이브러리에 옵션을 달아 줄 것이다. 우리가 추가해줬던 adder.h를 쓰냐, 안쓰냐에 따라서 (이것이 옵션이 된다.) 출력되는 결과물이 달라지게 하는 것이 목표다. CMakeLists.txt를 다음과 같이 수정한다. cmake_minimum_required(VERSION 3.21.1) # 프로젝트명 : 실행파일 이름이 된다. 버전도 여기에 적을 수 있다. project(OLAS VERSION 1.0) # adder use logic # 라이브러리에 option을 준다. # OFF로 바꾸면 subdirectory를 빌드에서 추가하지 않게 되는 코드로 사용하고자 한다. 더 아래의 코드와 함께 사용해서 말이다. option(USE_ADDER "A simple librar..

[CMake] Git Submodules/external library(서브모듈, 외부 라이브러리)를 이용하기

Git Submodules를 이용해보자. Git에 대해서 잘 모른다면, 혹은 Git 관련 커맨드라인 명령어에 대해서 잘 모른다면 다음 글을 먼저 읽어보자 2021.08.04 - [Computer_Engineering/Git] - [Git] 초보를 위한 깃허브 사용법 (Github) 1편 2021.08.06 - [Computer_Engineering/Git] - [Git] 초보를 위한 깃허브 사용법 (Github) 2편 Git에서 submodule의 의미는 다음 글들을 읽어보는 것이 더 좋을 것 같다. git에서 submodule이란??? Git 의 서브모듈(Submodule) - Sungho's Blog (sgc109.github.io) 다음 .gitignore파일을 추가하자. # Prerequisite..

[CMake] Versioning the Source Code : CMakeLists를 통해 소스코드 버전명 만들기

CMakeLists를 통해 프로젝트 버전명 만들기 CMakeLists.txt는 다음과 같이 고친다. cmake_minimum_required(VERSION 3.21.1) # 프로젝트명 : 실행파일 이름이 된다. 버전도 여기에 적을 수 있다. project(OLAS VERSION 1.0) # 헤더 파일에도 이 버전에 대해서 인지시킨다. # Input/Output 순서로 적는다. configure_file(OLASConfig.h.in OLASConfig.h) # 빌드해서 나올 것들. 프로젝트명을 실행파일 이름으로 한다. 빌드 대상은 main.cpp add_executable(${PROJECT_NAME} main.cpp) # 헤더파일을 input에서 output으로 만드는 데 필요한 경로를 입력한다. # ve..

아두이노 컴파일 시 error: cannot convert 'USBSerial*' to 'HardwareSerial*' in assignment 문제

error: cannot convert 'USBSerial*' to 'HardwareSerial*' in assignment 최근 팀프로젝트를 하는 중, 아두이노에서 .ino파일과 .cpp, .h 파일을 동시에 컴파일 하는 일이 있었다. 그런데 이런 에러가 떴다. In file included from /home/pjs/Arduino/libraries/Rosserial_Arduino_Library/src/ros.h:39:0, from /tmp/arduino_modified_sketch_218835/h_Position.ino:20: /home/pjs/Arduino/libraries/Rosserial_Arduino_Library/src/ArduinoHardware.h: In constructor 'Ardui..

[CMake] Makefile과 CMake

Makefile에 대한 소개 makefile은 컴파일 작업에 있어서 여러번 터미널창에 쳐야하는 명령어들을 하나의 파일에 모아서 작성한 것입니다. default: gcc main.cpp -o out 라고 작성하면, 터미널 창에 make라고 입력했을 때 터미널 창에 자동으로 `gcc main -o out`이 입력됩니다. 이를 이용하면 간단하게 out이라는 이름의 실행파일이 생성됩니다. 여러개의 파일을 동시에 컴파일 해보자 main.c, foo1.c, foo2.c를 각각 컴파일하여 Object파일을 생성하고, 링크를 통해서 a.out을 생성합니다. 여기서 foo1과 foo2는 main에 대해 의존성이 발생합니다. 원래는 이렇게 컴파일하려면 다음과 같이 CLI에서 명령해줘야합니다. gcc -c -o main.o..

[CMake] Makefile과 CMake 학습 자료 정리

블로그 구글 검색을 통해서 나온 글 중에서는 이 사이트의 설명이 가장 좋았다. Makefile을 사용하는 이유가 그저 명령어 여러번 치기 싫어서인 줄 알았는데, 해당 글을 보면서 Incremental Build라는 개념도 알게 되었다. 가능하면 아래의 유튜브 영상을 보기 전에 정독해보는 편이 좋을 것 같다. 꼭 외우거나 할 필요는 없다. [Make 튜토리얼] Makefile 예제와 작성 방법 및 기본 패턴 - ECE - TUWLAB [Make 튜토리얼] Makefile 예제와 작성 방법 및 기본 패턴 - ECE - TUWLAB 리눅스 환경에서 소스코드를 다운받아서 수동으로 프로그램 설치를 해 보신 분들은 다음 세 줄의 명령어에 매우 익숙할 것입니다. ./configure make sudo make ins..

공업수학 요점정리 #25 - 선형대수학(Linear Algebra) - 대각화 (Diagnalization)

수식이 깨져서 보일 경우 PC 버전으로 봐주시길 바랍니다. 자세한 증명은 전공서나 강의를 참고하시길 바랍니다. 대각화(Diagnalization)의 정의 행렬 $A$가 eigenvector가 있을 때, $D=X^{-1}AX$를 diagnal matrix라고 한다. $D$는 대각행렬이기에 대각원소를 제외하면 모두 0이다. diagnal matrix에는 세가지 특징이 있다. 그리고 행렬 $A$에서 diagnal matrix를 만드는 과정을 대각화(Diagnalization)라고 한다. $D$의 main diagnal entries는 행렬 $A$의 eigenvalue로 구성되어 있다. $X$는 $A$의 eigenvector를 column vector로 서로 붙여놓은 것이다. 그 순서는 $D$의 main dia..

노트북의 사망, 그리고 에어 블로워로 컴퓨터 먼지 청소한 후기와 결과

노트북이 죽어버렸다. 대체 왜??? 2021년 8월 10일 게임을 하던 도중 나와 4년을 함께한 노트북이 화면이 픽 하고 나가버렸다. 친구들하고 같이 경쟁전을 하던 중이라 급하게 다시 켜봤으나 다시 꺼졌고, 몇 번 더 테스트해본 결과 컴퓨터가 고장났다고 판단이 섰다. 4년이나 지난 노트북이라 보증기간은 당연히 지났고, 스스로 수리해야한다고 생각해서 열심히 방법을 찾아봤으나... 실질적으로 개인이 할 수 있는 방법은 컴퓨터 내부 청소 정도였다. 다른 고장은 개인이 판단하고 해결할 수준은 아니었고, 먼지나 오염물로 인해서 정상작동이 안되는 것이길 바라는 것 밖에 없었다. 준비물 컴퓨터 청소를 하기 위한 준비물은 다음 3인방이면 된다. 왼쪽부터 설명하자면 에어 블로워(먼지제거제라고도 하는 것 같다), 정밀 드..

개인 기록 2021.08.24

한국사능력검정(한능검) 필기/실기 합격 후기 + 공부방법

인증 공부과정 1. 강좌 수강 저는 이투스에서 무료로 제공하는 최태성 선생님의 강의를 들었습니다. 총 40~45강 정도의 분량이라 많기는 하지만, 시험에 나오는 내용을 꼼꼼히 짚어주시기에 꼭 들어보시길 추천합니다. 교재는 굳이 구매할 필요는 없습니다. 저는 강의를 수강하면서 선생님께서 하신 판서를 그대로 필기했고, 오히려 이게 더 효율적이기도 합니다. 2. 문제풀이 문제풀이는 그냥 기출문제집을 사서 풀었습니다. 그냥 다른 거 알아보기 귀찮기도 해서, 그대로 최태성 선생님 집필서로 구매했습니다. 내용은 그냥 기출문제 그대로 + 해설이라 깔끔하기도 하고, 해설 자체가 친절하기도 해서 추천합니다. 시험전까지 절반정도까지 풀었었고, 나머지 절반은 시간이 없어서 바로 해설을 보고 모르는 것만 체크했습니다. 여러분..

반응형