하나의 큰 개체이 만들어지면서 서로 연결된 많은 개체 파일이 컴파일 된 프로그래밍 언어 (예 : C++)로 설정되는 이유는 무엇입니까?하나의 대형 오브젝트 파일 대신 많은 오브젝트 파일을 링크하는 이유는 무엇입니까?
예를 들어 (C++로 작성되었으므로 컴파일 된 언어에 적용될 수 있음) 프로젝트의 두 파일을 main.cpp
및 auxiliary.cpp
으로 간주하십시오. 무엇 main.cpp
와 auxiliary.cpp
의 차이는 main.o
및 auxiliary.o
로 컴파일 한 후 main.exe
에 연결하고, #include auxiliary.cpp
와 main.cpp
은 main.o
로 컴파일 및 main.exe
에 연결되고되고있다? 내 지식으로는, 이들은 최소한 외면적으로 같은 결과를냅니다.
다국어 프로젝트의 경우에는 여러 개체가 필요하지만 그렇지 않은 경우가 있습니다. 여러 객체가 어떻게 든 링커에게 실행 파일을 만드는 데 더 많은 융통성을 부여합니까?
수천 개의 클래스가 포함 된 수십만 줄 길이의 단일 cpp 파일에서 어떻게 찾을 수 있습니까? 또한 1 줄을 바꿀 때 컴파일하는 데 1 시간을 기다리는 것을 원하지 않습니다. – drescherjm
'# include' 전 처리기 명령을 사용하면 소스는 사용자에게 많은 파일에 있지만 컴파일러에 하나의 파일로 나타납니다. –
컴파일 시간이 불필요하게 오래 걸릴 수 있습니다. – drescherjm