2011-08-10 2 views
2

나는 C++의 컴파일과 링크에 관한 자세한 기사를 찾고있다. 나는 그들에 대해 많이 알고 있지만, 내가 놓친 미묘한 점이 있는지를 확신한다.C++에서 컴파일 및 링킹

+0

일부는 공급 업체 또는 특정 플랫폼 일 수 있습니다. 특히 염두에 두어야 할 것이 있습니까? –

+0

@ Christian.K 일부 이론 플러스 플랫폼 또는 벤더 특정 사례 (windows, unix), (cl, g ++) –

+0

"많은 의미"는 무엇을 의미합니까? 특정 플랫폼 용으로 다른 어셈블러 코드를 사용하여 휴대용 C++ 래퍼를 작성하거나 작성 했습니까? "프로그래밍 언어 및 컴파일러"또는 "컴파일러 작성"과 같은 CS 저주에 대해 들었습니까? – mbx

답변

6

Linkers and Loaders은 그 주제에 대한 고전입니다. 컴파일러의 이론적 배경은 Dragon Book입니다. 정말로 컴파일러를 만들고 싶다면 Let's Build a Compiler을 읽을 가치가있다. 컴파일러에 대한 몇 가지 코스가 Stackoverflow 질문에 언급 된 비디오에 기록 된 곳입니다. Are there any compiler lectures available via video?

C++에 대한 개요는 here입니다. 나는 대부분 당신이 이미 알고있을 것이라고 생각합니다.

만약 당신이 정말로 그것을 가지고 있다면, 다른 버전의 gcc와 llvm/clang에서 소스를 읽는 것이 어떻습니까? Sun/Oracle Linker and Libraries Guide은 Sun/Solaris 플랫폼에 대한 포괄적 인 작업을 제공합니다.

+1

훌륭한 책이지만 출판 날짜로 인해 C++ 링크 (특히 템플릿)의 많은 문제에 대해서만 다룹니다. 간략한 개요는 하나의 특정 구현에만 적용됩니다. –

+1

@mbx : "컴파일러에서의 일부 저주"-> gcc를 많이 저주합니다. –

+0

@Matthieu M : 아직 또 다른 시멘틱스가 오타를 바꾸고 있습니다. – mbx

1

Ulrich Drepper가 작성한 how tow write shared libraries이라는 논문이 있습니다. 링커 자체는 아니지만 심볼 로딩 및 분석이 작동하는 방식, 관련되는 것을 매우 깊이 설명합니다. 그것은 오직 Linux 지향적 인 방법입니다.

3

Ian Lance Taylor (작성자 : gold 링커)의 series이 마음에 들었습니다. 링커와 그 역사를 아주 자세하게 설명합니다.