기타

프로젝트 속성 관련 정리

FORHAPPy 2022. 1. 6. 01:35

<다른 사람이 만든 라이브러리를 사용하는 경우>

 

프로젝트 속성-> VC++디렉터리 ->포함디렉터리   (헤더파일 경로 설정)

프로젝트 속성-> VC++디렉터리 ->라이브러리 디렉터리   (소스파일 경로 설정)

 

->이 방법은 새로운 프로젝트를 만들 경우에는 기존에 적용한 경로들이 적용 되지 않는다. 

 

 

 

<모든 프로젝트에 라이브러리를 설정하는 방법>

보기-> 속성관리자 -> 속성관리자 탭에서 실행모드에 따라 우클릭 하여 속성창 ->앞에서와 같이 디렉터리를 지정

 

->모든 프로젝트에서 항상 쓰이는 필수적인 라이브러리는 이렇게 설정한다.

 

 

<다른 사람이 만든 라이브러리를 사용하는 경우2>

 

프로젝트 속성-> C/C++ ->추가 포함디렉터리   (헤더파일 경로 설정)

프로젝트 속성-> 링커 -> 일반 ->추가 라이브러리 디렉터리   (소스파일 경로 설정)

 

->이 방법은 맨 처음에 설명한 방법이랑 결과는 같으나 복사하였을때 경로도 그대로 따라간다

 


 

<#include <헤더파일>>

컴파일러가 설치된 폴더와 같은 경로에 해당 헤더파일이 위치해 있다. 따라서 같은 경로에서 찾으라고 명령하는것이다.

 

<#include "헤더파일">

사용자의 프로젝트 폴더나 개발자가 추가포함디렉터리로 지정해준 경로에서 찾으라는 명령이다. 

 


링크(Link)에 대한 이해 

 

cpp파일들은 각각 따로 컴파일이 되서 각각 다른 오브젝트 파일들이 만들어 진다.

각각 오브젝트 파일들은 서로 다른 파일이기 때문에 다른 파일에서 선언한 변수는 전혀 모르는 상태가 된다. 

이를 연결해주는게 링커의 역할이다. 


라이브러리에 대한 이해 

 

라이브러리는 기계어로 번역된 바이너리다. 라이브러리를 사용하기 위해서는 라이브러리의 헤더파일이 있어야 한다. 

그래야 링커가 알아먹을수 있는 심볼네임을 컴파일러가 만들어 내기 때문이다.

소스파일의 컴파일된 산물인 오브젝트 파일을 여러개 모아놓은게 라이브러리다. 

라이브러리 확장자는 lib이다. 

 

헤더파일의 이해 

 

컴파일러가 컴파일 하기전 문법에 맞게 프로그래밍된 선언들의 집합이다.

컴파일러가 헤더파일을 가지고 심볼네임을 만들어서 오브젝트 파일에 넣어주면 링커가 해당 심볼네임을가지고 라이브러리를 뒤져서 링크하게 된다. 

 

심벌 테이블(symbol table)이란 컴파일러가 코드를 생성하기 위해서 내부적으로 유지하는 테이블을 말한다. 심벌 테이블에는 변수, 함수 및 클래스들의 정보를 유지하고 정확한 코드 생성을 위해 사용된다.

 


런타임 라이브러리

 

C런타임 라이브러리를 정적으로 링크해 c런타임 라이브러리 DLL이 설치 되지 않은 시스템 에서도 프로그램이 동작하게 설정

 

나중에 자세히 알아보도록...한다..

 

 


포함디렉터리 

 

Visual Studio 에게 해당 헤더파일을 찾아볼 곳을 알려준다. 

 

라이브러리 디렉터리

 

링커에게 DirectX 라이브러리 파일을 찾아볼 곳을 알려준다. 

 

추가 종속성

 

visual Studio 에게 어떤 라이브러리를 추가 해야 할지 알려준다. 

 

 


 

 

 

'기타' 카테고리의 다른 글

[기타] 헤더파일 순환참조 & 중복선언  (0) 2022.01.17
네트워크 실습해보기  (0) 2021.09.21
수업일정  (0) 2021.09.10