워크스페이스, 소스파일 관련 질문
이솔
2023.04.01
-
우주
감사해요~~~
-
카제
때문에 컴파일에러는 기본적인 c언어 문법의 잘못된 사용으로 일어나기 때문에 컴파일에서 아무 문제가 없어도
혹 다른 파일에서 필요한 함수를 사용하거나 필요로 할때, 다른 파일에 그 함수가 정의되어있지 않을때
컴파일 에러가 아닌 링크에러를 발생시킵니다. -
나미
main함수는 프로젝트파일에 하나 있어야 하구요 코드가 길어져서 소스파일을 여러개로 나누곤 하는데
컴파일러는 컴파일을 할때 전체적으로 판단하여 컴파일을 하는게아니라 각 소스파일단위 즉 파일단위로 컴파일을 하게 됩니다. 그리고 링커가 그 파일들을 연결 시켜주는 링크을 수행하는 겁니다. -
보나
하나의 프로젝트 밑에 소스, 헤더파일들이 있는거죠...이 프로젝트 밑에 있는 소스 파일들끼리는 서로의 헤더를 포함시키며 참조를 할수가 있죠. 메인함수가 하나인 것만 규칙을 지켜주면 됩니다.
-
도래
그럼.. 컴파일은 각 소스파일단위로 되고 링크의 경우엔 프로젝트의 단위로 되는건가요? 한 소스파일에 메인함수를 넣고 다른 소스파일엔 각종 함수같은걸 넣으면 실행되겟져?..
-
단화한
하나의 워크스페이스에 여러개의 소스파일이 있다면, 그 중에서도 한 곳에만 메인이 있어야 합니다.
컴파일을 하면 각 소스파일들이 obj (오브젝트) 파일을 만들고, 나중에 링커에 의해서 이 오브젝트 파일이 서로 연결됩니다. 이 때, 메인이 여러개 있다면 당연히...안되겠져...