2
여러 개의 다중 정의 오류 질문이 여기에 있음을 이해하지만이 문제로 어려움을 겪고 있습니다.최적화 수준의 C++ 다중 정의 링커 오류
저는 개발중인 모듈이 있고 디버그에 빌드했습니다. 즉 -DDEBUG -g -O0
입니다. 지금은 내가 빌드 릴리스 -DNDEBUG -Os
을 만들고 싶어 내가
- 표준 : basic_ios> :: basic_ios()
- 표준 : __ throw_bad_alloc 등 여러 STL 정의의 여러 정의에 대한 링커 오류를 얻을()
- 표준 : : 문자열 : 할당 (숯불 CONST *) V
- 등등 내 프로젝트의 모든 헤더 파일이 #ifndef 가드를 가지고 헤더 파일에있는 유일한 코드는 인라인 선언을 확인했다
.
주위를 어지럽 혀서 -DNDEBUG -O0
으로 컴파일 할 수 있지만 어떤 최적화 수준에서는 컴파일 할 수 없습니다. 빌드 프로세스에는 약 2 개의 오브젝트를 빌드 한 다음이를 서로 링크하는 작업이 포함됩니다. 왜 최적화가 링커를 죽일까요? 이 문제를 어떻게 해결할 수 있습니까?
TDM으로 작성 MinGW 4.6.1.
마찬가지로 나는 문제 파일이 무엇인지 찾을 수없는 질문에 말했다. 어떤 파일이 문제가있는 아동인지 파악하는 데 도움이됩니까? –
@AndrewRedd에 MFC 헤더가 포함되어 있습니까? 물론 소스를 찾을 때까지 파일을 제거하려고 할 수 있습니다. –
나는 혼합 dll 문제가 이것과 관련이 없다고 생각하지 않습니다. 깨끗한 상태에서 완전히 빌드하고 디버그와 릴리스를 섞지 않습니다. –