09.06

신승빈·2022년 9월 6일
0

KGCA 수업

목록 보기
36/128

속성

Debug, Release 모드별로 설정해놓는 것이 좋음

출력 디렉토리, 중간 디렉토리 수정

추가 포함 디렉토리를 통해 외부 include 가능

전처리기 설정을 통해 조건부 컴파일 가능
단, 이미 조건부 컴파일이 된 라이브러리를 사용한다면 해당 라이브러리가 이미 완성이 되었기 때문에, define을 수정해도 작동하지 않음.

미리 컴파일된 헤더 설정

추가 라이브러리 디렉터리를 통해 외부 라이브러리 사용 가능

외부 라이브러리 사용 시 추가 종속성 입력 필요

#pragma comment(lib, "libraryName.lib")

코드를 통해 추가 종속성도 가능
DLL파일도 따로 수정할 필요는 없음

if not exist "$(ProjectDir)\..\..\include\" mkdir "$(ProjectDir)\..\..\include\"

copy "$(ProjectDir)\*.h" "$(ProjectDir)\..\..\include\"

if not exist "$(ProjectDir)\..\..\lib\" mkdir "$(ProjectDir)\..\..\lib\"

if exist "$(ProjectDir)\$(ProjectName).lib" copy "$(ProjectDir)\$(ProjectName).lib" "$(ProjectDir)\..\..\lib\"
if exist "$(OutDir)\$(ProjectName).pdb" copy "$(OutDir)\$(ProjectName).pdb" "$(ProjectDir)\..\..\lib\"

빌드 후 이벤트 시 빌드를 성공하면 복사 가능

라이브러리 관리자를 통해 라이브러리의 생성 위치 수정 가능


참조를 통해 상위 라이브러리의 변동 사항을 자동으로 받아올 수 있음


확인할 수 없는 외부 기호 문제는 cpp, lib(32-64 비트 호환 문제 역시 동일), 종속성 중 한개라도 없을 경우 발생

라이브러리

정적 라이브러리

lib 파일
실행 파일에 포함됨

동적 라이브러리

dll파일
실행 시간에 적재 가능

pdb파일

존재할 경우 디버깅 가능
lib파일만 있는 경우에도 가능한가?

테스트 유닛을 쉽게 만들어보자



윈도우 옵션창->프로젝트->템플릿 내보내기를 통해 새 프로젝트에서 사용 가능한 템플릿 생성 가능

profile
이상을 길잡이 삼아 로망을 추구합니다.

0개의 댓글