2012-04-16 5 views
1

성능이 최적화없이 크게 줄어들어 릴리스 모드에서 사용해야하는 라이브러리가 있습니다. 내/MDd에서/MD와 함께 사용하면 crt 경고가 나타나는데 이는 좋지 않습니다. (힙 손상을 일으킬 수 있습니까?)/MDd 응용 프로그램과 함께/MD 라이브러리 사용

그래서 내가 한 것은 모든 릴리스 최적화를 유지하면서/MDd를 사용하여 링크 라이브러리를 유지하는 것입니다. 경고가 사라졌습니다. 그러나 이로 인해 문제가 발생하거나 성능이 저하 될 수 있습니까?

+0

디버그에서 응용 프로그램을 빌드하는 경우에도 릴리스에서 사용해야한다는 의미입니까? –

+0

예. 내가 많이 디버깅하지만 그 라이브러리는 끔찍한 디버그 빌드 성능을 가지고 있습니다. – mikbal

답변

2

/MD 대신/MDd를 사용하면 성능이 저하 될 수 있지만 이는 사용자가하는 일에 따라 결정됩니다. 어쨌든 성능에 중요한 코드에서 런타임을 사용하지 않으면 느려지지 않습니다. 또는 다른 방법으로 문제를 해결할 수 있습니다./MD를 사용하여 응용 프로그램과 라이브러리를 빌드 할 수 있지만 디버그 정보가 있고 최적화가없는 응용 프로그램은 여전히 ​​있습니다.

+0

/MDd에서 속도 저하가 거의 눈에 띄지 않습니다. 이 빌드 디버그 이후로 함께 살 수 있습니다. 하지만 런타임 오류가 발생합니까? – mikbal

+2

아니요,/MD와/MDd를 섞어 놓지 않는 한 모든 것이 잘되어야합니다. – ElektroKraut

1

나는 이것을 어려운 방법으로 배웠다. 힙 손상 오류를 디버깅하는 데 3 일을 소비했다. 내가 이미 해방 된 것을 해방하고 있다고 생각했다. 나는 아직 그것을 시험해보고있다. 이것은 심지어 내 코드조차도 아니다. 기본적으로 응용 프로그램 라이브러리를 사용하는 클라이언트 응용 프로그램은 코드 생성/MD 디버그 빌드를 사용하여 빌드되는 동안 디버그 빌드에 대한 코드 생성/MDd를 사용하여 응용 프로그램을 빌드합니다. 이로 인해 갑자기 힙 손상 오류가 발생하기 시작했습니다. 이 문제를 해결하면 후속 조치를 취할 것입니다. 감사.

관련 문제