Защо DLL, компилиран в MinGW, се срива?

Компилирах една DLL в Cygwin, използвайки g++ 4.7. Работи добре. Но когато компилирам същия код в MinGW и се опитам да използвам DLL. Той срива програмата с грешка отказан достъп (CX00000005) и показва libstdc++-6.dll като проблемна DLL.

Всяка помощ се оценява. Благодаря предварително.


person kimesh    schedule 24.04.2013    source източник


Отговори (1)


Най-вероятно ви липсва MinGW dll или имате cygwin dll в PATH, когато стартирате приложението си. Не забравяйте да копирате правилните dll файлове в същата директория като вашия exe.

person rubenvb    schedule 24.04.2013
comment
Благодаря @rubenvb, погрижил съм се за такива неща. Премахнах всички пътища на cygwin от променливата на средата PATH и копирах всички dll само от MinGW. Но проблемът все още съществува. - person kimesh; 24.04.2013
comment
Пуснете го през Dependency Walker (за да сте абсолютно сигурни кои DLL файлове се използват) и програма за отстраняване на грешки, за да видите къде може да е проблемът. - person rubenvb; 24.04.2013
comment
Реших проблема, като понижих gcc до 4.6.2 от 4.7.2. Това беше gcc бъг 55171, който причиняваше срив на dll. - person kimesh; 01.05.2013