로봇의 범퍼 스위치 코드를 컴파일하려고하는데이 오류가 발생합니다. "오류 - 기호 'tr'에 여러 정의가 있습니다." 이것은 무엇을 의미 하는가? 나는 이것에 고통스럽고 새로운 ..."오류 - 'tr'기호에 여러 정의가 있습니다."
답변
컴파일 타임이나 링크 시간에 오류가 표시되는지 여부에 따라 다릅니다. 당신은 (때 오브젝트 파일에서 프로그램을 구축) 링크 시간에 그것을 볼 경우
, 그것은 두 개 이상의 오브젝트 파일을 의미하며, 변수 'TR은'(또는 함수 'TR')는 여러 정의 다른 파일에서 시간.
하나의 파일이 오브젝트 파일로 변환 될 때 컴파일시 표시되면 주어진 소스 파일에서 변수 또는 기능을 두 번 이상 정의했습니다.
코드에서 변수 tr
에 대한 하나 이상의 정의가있을 수 있습니다. 예 :
int tr = 0;
과 같은 코드의 다른 부분에서
, 또는int tr = 0;
tr
에 대한 검색을 수행 파일.
* "여러 번 선언 된 경우"* - 여러 선언이 괜찮 으면 여러 정의가 (대부분) 없습니다. –
@ George - 가져온 포인트. 게시물을 업데이트하십시오. –
어쩌면 당신의 헤더 파일 (있는 당신이 tr
을 선언했을 수도) 같은 .c
파일을 여러 번 포함되고있다.
쉬운 솔루션 중 하나는 Include Guards입니다.
헤더가 문제가되기 위해서는 헤더가 변수를 선언해야합니다. 헤더는 '결코'('아주 아주 드물다'는 의미) 변수를 정의해야합니다. –
- 1. '_Default'유형에 이미 정의가 포함되어 있습니다.
- 2. 유형에 'Zehut'에 대한 정의가 이미 있습니다.
- 3. 오류 : 'object'에 'methodName'에 대한 정의가 없습니다.
- 4. 클래스 정의가 없습니다.
- 5. CUDA : 오류 C2491 : 'log1p': dllimport 함수 정의가 허용되지 않습니다.
- 6. 'NLog.LogManager'에 'GetCurrentClassLogger'에 대한 정의가 없습니다.
- 7. 350 개 이상의 오류 : 'blah.blah.blah'유형에 이미 정의가 포함되어 있습니까?
- 8. 레일에 오류 메시지가 있습니다.
- 9. lawnchair에 여러 값이 있습니다
- 10. Bookmarklet에 여러 jQ.src가 있습니다.
- 11. 오류 : '.'앞에 예상되는 초기화 프로그램이 있습니다. 토큰
- 12. PHP 클래스 변수 정의가 필요합니까?
- 13. WSDL 데이터 형식 정의가 누락되었습니다.
- 14. 여러 폼에 여러 개의 onsubmit 핸들러가 있습니다.
- 15. Java enum 정의가 잘못된 것
- 16. "System.Array에 LastWriteTime에 대한 정의가 없습니다."
- 17. 'object'에 'Name'에 대한 정의가 없습니다.
- 18. PHPmailer 여러 수신자는 오류
- 19. 여러 함수 정의 오류
- 20. 'System.Web.Mvc.HtmlHelper'에 'RenderPartial'에 대한 정의가 없습니다. - ASP.Net MVC
- 21. C++ 매크로 정의가 확실하지 않습니다.
- 22. 'string'에 'TryParse'에 대한 정의가 없습니다.
- 23. public.xml의 정의가 어디에 링크되어 있습니까?
- 24. 프리 프로세서 정의가 라이브러리로 컴파일됩니까?
- 25. "foo"에 대한 정의가 없습니다.
- 26. NHibernate.ISession에 Linq에 대한 정의가 없습니다
- 27. MySQL -보기 : 저장 후 정의가 변경됩니까?
- 28. Jquery이 var 정의가 캐치되지 않는 예외를주는 이유
- 29. C++ 여러 정의 오류
- 30. 이상한 여러 정의 오류
여러 .c 파일에 포함 된 .h 파일에 'tr'이 정의되어 있습니까? –
[One Definition Rule] (http://en.wikipedia.org/wiki/One_Definition_Rule)을 참조하십시오. –