반응형
DLL 만들기 작업에서 아래와 같은 오류가 발생하는 경우 대처법? 입니다. DLL 만드는 작업은 아래를 참고했구요.
gcc 대신 mingw 에서 g++.exe 파일을 사용했습니다.
C:\mingw-w64\mingw64\bin\g++.exe Test.o -o Test.dll -mwindows -Wall -L. -lTest -shared
Test.o:Test.cpp:(.text+0x588): undefined reference to `__imp_SysAllocStringLen'
Test.o:Test.cpp:(.text+0x616): undefined reference to `__imp_SysFreeString'
collect2.exe: error: ld returned 1 exit status
The terminal process terminated with exit code: 1
음. 뭐가 오류였는지, 정확하지 않은데, 해결책 중 하나는 MS C++을 사용하라는 건데, 뭔가 그렇게 하기에는 찜찜해서 다른 자료를 찾아보니, 그냥 옵션만 추가해주면 된다고 하네요.
C:\mingw-w64\mingw64\bin\g++.exe Test.o -o Test.dll -mwindows -lole32 -loleaut32 -Wall -L. -lTest -shared
정말 기존 코드에서 -lole32 -loleaut32 두 개 옵션만 추가해주었는데, 문제가 해결되었습니다.
https://bugreports.qt.io/browse/QTIFW-1014?focusedCommentId=378341
https://github.com/andlabs/ui/issues/326
https://github.com/veandco/go-sdl2/issues/362
이슈로 올라온 것들을 보면 그때그때 안 되는 이유들이 달라서, 이게 정답이라고 하기에는 애매합니다만 일단 DLL 파일은 만들어졌으니 ㅠㅠ
* 아, 이런 문서가 있었는데 이제야 ㅠㅠ
http://www.mingw.org/wiki/sampleDLL
728x90