2012-01-11 5 views
0

대학 교수가 자신의 C++ 클래스에 대한 요구 사항을 제공했습니다. gnu C++ 컴파일러 (GCC)를 사용하여 프로그램을 작성해야합니다. xcode를 설치 한 후 사과 버전의 gcc를 얻었습니다. 그러나, 이것은 내가 이해하는 바와 같이 완전히 호환되지 않습니다. 그래서 맥 포트를 사용하여 gnu gcc 컴파일러를 설치하려했지만 실패했다. 일 후 :Mac에서 크로스 플랫폼 C++ 프로그램을 작성하려면 어떻게해야합니까?

내가 터미널로 가서 실행
port install gcc47 

:

gcc -v 

를 내가 얻을 :

gcc47 -v 

나는 내가 실행하면 찾을 수 없습니다 "명령"GET

gcc version 4.2.1 (Apple Inc. build 5666) (dot 3) 

표시 모자 나는 여전히 사과의 버전을 사용하고있다. 내가 이해하지 오전 부분은 다음과 같습니다

  1. 어떻게 그런 식으로 GCC (는 GNU 버전이 아닌 사과의 버전)
  2. 는 어떻게 IDE를 함께 사용 하는가를 설치하는 방법은 무엇입니까?
+0

Apple의 GCC 버전은 다른 버전의 GCC와 호환되어야합니다. C++ 표준 라이브러리의 함수 만 사용하는 경우 C++ 컴파일러가있는 모든 플랫폼에서 실행되도록 동일한 소스 코드를 컴파일 할 수 있습니다. 한 컴파일러에서 작동하고 다른 컴파일러에서 작동하지 않는 코드는 때때로 불일치합니다.하지만 Apple의 GCC는 이와 관련하여 특별하지 않습니다. –

+0

새 컴파일러를 설치할 때 올바른 작업을 한 것처럼 들리지만, gcc47을 설치하면 포트를 실행할 때 오류 메시지가 나타 납니까? 그렇지 않으면/opt/local/bin/gcc47을 시도하십시오. 그렇지 않으면 문제가 발견 될 때까지 Xcode의 gcc를 사용합니다. –

답변

0

사용하는 GCC 버전 (Apple 또는 GNU 기본)은 진행하는 것과 관련이 없어야합니다.

휴대용 C++을 작성하는 것은 컴파일러와 관련이 없습니다. 컴파일러를 보장하지 않으면 C++ 표준을 준수하는 것이 가장 좋습니다. 다행히도 GCC는 최고의 C++ 컴파일러 중 하나입니다. 당신은 진정한 휴대용 C++의 예를 들어 다양한 시스템을위한 C++ 컴파일러 (VAX/VMS의 CC의 다양한 상태 주어진 쓰기에 다소 통증 때문에 크로스 플랫폼 C++ 당 자체를 할 찾고하지 않을

템플릿을 지원하지 않습니다 ...). 나는 당신이 Mac에서 쓰는 코드가 당신의 prof에 의해 컴파일 될 수 있도록하고 싶다고 생각합니다. GCC가 Mac에서 처리 할 수있는 한 괜찮습니다. 그래서 특정 질문에 대한

: 당신은 당신의 코드를 컴파일 사과의 공급 g ++를 사용할 수

첫 번째 질문은 필요하지 않습니다.

두 번째 질문에 대해서는 배우려고 노력하면서 IDE를 사용하지 않는 것이 좋습니다. IDE는 정말 좋은 시간 절약 기능을 제공하지만, 학습 과정의 초기 단계에서 고생 할 가치가 있다고 생각하는 중요한 측면을 숨기고 C++ 기술을 강화하는 데 도움이됩니다. 그리고 상황이 확실히 좋아졌지만 일부 IDE는 비 휴대용 C++ (예 : void main() 사용)를 만드는 것으로 유명합니다.

이클립스 또는 XCode를 사용하여 여전히 설정되어있는 경우 사용하는 GCC 설치와 상관 없으므로 기본 설정이 정상적으로 작동해야합니다.

+1

여러 플랫폼에서 실행되는 바이너리를 컴파일하고 싶지 않습니다. 이해합니다. 나는 또한 IDE에 대한 당신의 의견을 이해합니다. 그러나 피하려고하는 주요 문제는 교수님과 다른 환경입니다. 그는 gnu gcc를 사용하여 컴파일합니다. 그리고 다른 것을 사용하여 컴파일하면 플랫폼에서 코드를 컴파일하려고 할 때 잠재적으로 문제가 발생할 수 있습니다. 이것이 내가 풀려고하는 문제이다. – justspamjustin

+1

이해할 수 있습니다. 매우 중요한 일을하지 않는 한, Mac에 설치된 기본 gcc 컴파일러를 사용해도됩니다. – Alan

0

이전에 포트를 통해 gcc47을 설치하는 데 문제가 발생했지만 gcc46이 예상대로 진행되었습니다. gcc_select을 설치할 수도 있습니다.

여기에서 gcc_select을 사용하거나 Eclipse의 도구 체인 편집기에서 경로를 명시 적으로 지정할 수 있습니다.

기타 참고 사항 : 당신이 C++ 11 기능이 필요하지 않은 경우

  • , 다음 애플의 GCC 4.2.1는 잘 작동합니다. 아마도 당신은 왜 그것을 사용할 수 없는지 상세히 설명 할 수 있습니다. 기본적으로 Apple은 일부 경우 APPLE_ONLY라고 표시된 일부 툴체인 확장을 추가했으며, 어떤 옵션이 활성화/비활성화되었는지 잘 제어합니다.

  • Xcode와 함께 제공되는 Clang의 최신 버전은 C++을 잘 처리합니다 (C++ 11에 대한 일부 지원 포함). Clang을 사용할 때 내가 놓친 GCC에는 몇 가지 고급 기능이 있지만 Clang의 현재 C++ 지원은 정말 훌륭합니다.

관련 문제