2012-02-15 4 views
1

iostream이 포함 된 main.cpp 파일이 있습니다.C++ 링커, iostream 파일을 연결하는 방법?

내가 main.cpp를 컴파일하고 내 질문은되도록 그것이 오류없이 작동 : 나는 main.cpp를 컴파일 내가 main.cppiostream를 연결하지 않았기 때문에 어떻게 이것이 가능 될 수 있을까? 또는 컴파일러가 iostream을 자동으로 링크 했습니까?

답변

6

iostream의 함수는 일반적으로 명시 적으로 연결할 필요가없는 C++ 표준 라이브러리의 일부입니다.

엄격하게 C++ 컴파일러가 아닌 컴파일러를 사용하는 경우 가끔 -lstdc++과 같은 것을 추가해야합니다 (적어도 g++ 대신 gcc을 사용하면됩니다).

+0

그래서 g ++은 링크 타임 중에 C++ standart 라이브러리를 추가하지 않고 C++ 표준 라이브러리를 포함하는 파일 (예 : iostream)과 항상 연결합니다. – AlexDan

+0

예 : C 컴파일시 libc를 링크 할 필요가 없습니다. 컴파일러가 언어 런타임을 자동으로 연결하지 않는 것은 일반적으로 힘들 것입니다. – Useless

0

iostream 라이브러리는 단어의 가장 큰 의미에서 “ 컴파일러 ”의 일부이며, 당신이 C++ 컴파일러 드라이버를 통해 링커 (g++, cl 등)를 호출하면 자동으로됩니다 포함; IDE는 일반적으로 자동으로 포함되도록 조정합니다. 링커를 직접 호출하면 (ld, link 등) 은 일반적으로 명시 적으로 지정해야합니다. 컴파일러 드라이버가 C++을 인식하지 못하는 경우에도 마찬가지입니다 (gcc의 경우).