2012-10-22 2 views
-3

프로젝트를 작업 할 때 거기에 없어야하는 의미 상 오류가 많아서 C++에서 프로그래밍하는 데 문제가 있습니다.컴파일시의 C++ 의미 에러

제 동료가 프로젝트를 시작하여 나에게 보냈을 때, 컴퓨터에 오류가 발생했지만 그녀는 그렇지 않았습니다.

이것은 전에 나에게 일어났습니다. 나는 프로젝트를 위해 일하기 시작했고 비슷한 오류가 발생했다. 그런 다음 선생님의 컴퓨터에서 사라졌습니다.

저는 최근에 컴퓨터를 포맷했고 현재 Windows 8 64 비트를 사용하고 있습니다. 나는 Eclipse Juno C++ 64 비트를 사용했지만 Indigo에서도이를 시도했지만 작동하지 않았다. 내 컴파일러는 MinGW 9.4입니다.

구성에 문제가있는 것 같습니다. 건물과 아마 같을거야.

내가 유용하다고 생각하는 오류를 비활성화하지 않은 솔루션을 원합니다.

누군가 나를 도울 수 있습니까? =)

편집 : 거의 표시 모든 오류가

Method X could not be resolved.

또는

Invalid arguments

Edit2가 :

내 동료 교수도 사용

Probably your colleague is using a Microsoft compiler which are notably more lax in allowing illegal code compared to for example gcc, which is likely the compiler being used by MinGW. – Mark B

Eclipse와 MinG W.

+8

오류 게시 또는 아무도 도와 줄 수 없습니다. – GManNickG

+0

아마도 동료가 MinGW에서 사용하는 컴파일러 인 gcc와 비교하여 불법 코드를 허용하는 데있어서 훨씬 느슨한 Microsoft 컴파일러를 사용하고있을 것입니다. –

+4

환상적인 이야기입니다. 수수께끼와 음모가 있지만 로맨스가 없습니다. – sashang

답변

4

우선, 의미 상 오류라고하지 않습니다. 의미 란 논리 버그를 나타내는 프로그램의 의미를 의미합니다. 컴파일러 오류에 대해 얘기하고 있다고 가정합니다. 일반적으로 잘못된 구문은입니다.

두 번째로 다른 컴퓨터에서 다른 오류 및 경고를받을 수있는 데는 여러 가지 이유가 있습니다. 일부 컴파일러 및 컴파일러 버전은 다른 컴파일러보다 적합성이 엄격합니다. 일부는 버그가 있습니다. 다른 컴파일러에서 인식하지 못하는 컴파일러 관련 확장이있을 수 있습니다. 당신은 당신이 얻는 에러의 수와 타입에 영향을 줄 다른 플래그를 설정할 수 있습니다. 극단적 인 예는 -wall -werror이지만 C++ 03과 C++ 11에서 컴파일하는 것과 같은 것들도 많은 차이를 유발할 것입니다.

컴퓨터마다 다른 오류의 또 다른 주요 원인은 라이브러리 배치입니다. C 및 C++ 컴파일러/링커는 올바른 경로가 설정된 올바른 위치에 모든 올바른 헤더와 라이브러리가 있는지 확인하는 데 매우 까다 롭습니다.

+0

오류 "유형"이 "의미 론적 오류"이므로 의미 론적 오류라고했습니다. 경고를 경고로 바꾸는 데있어 다른 컴퓨터에서는 프로젝트에 경고가 없습니다. ... – user1766833

+1

컴파일러 오류가 의미 론적 일 수 있습니다. 'void * x = 42;'는 의미 론적 오류가 있습니다 : 유형이 일치하지 않습니다. OTOH 구문은 완벽합니다. –