libiconv win200 포팅 및 DLL 생성작업, 유용한 유니코드 변환라이브러리 찾아요
등록 2002-06-25 16:35:00
조회 4
이름 김일권
안녕하세요.
유니코드를 지원하는 라이브러리
GNU의 libiconv를 windows DLL로 만드는 작업을 하고 있는데요..
compile 과정에서 막힙니다.
msvc버젼의 makefile이 있습니다만 에라가 다음과 같이 출력됩니다.
다음과 같이 compile을 하였습니다.
=======================================================================
D:gnu_LIBICONVlibiconvlibiconv-1.8.tarlibiconv-1.8>nmake -f Makefile.msvc DLL=1 MFLAGS=-MD
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
cd libcharset
NMAKE -f Makefile.msvc all
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
copy includelibcharset.h.msvc-shared includelibcharset.h
1개 파일이 복사되었습니다.
cd lib
NMAKE -f Makefile.msvc all
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
cl -MD -LD localcharset.obj
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:localcharset.dll
/dll
/implib:localcharset.lib
localcharset.obj
cd ..
cd ..
copy libcharsetincludelibcharset.h liblibcharset.h
1개 파일이 복사되었습니다.
copy includeiconv.h.msvc-shared includeiconv.h
1개 파일이 복사되었습니다.
cd lib
NMAKE -f Makefile.msvc all
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
cl -MD -LD iconv.obj ..libcharsetliblocalcharset.obj
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:iconv.dll
/dll
/implib:iconv.lib
iconv.obj
..libcharsetliblocalcharset.obj
LINK : warning LNK4049: locally defined symbol "_locale_charset" imported
cd ..
cd src
NMAKE -f Makefile.msvc all
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
NMAKE : fatal error U1073: don't know how to make '../lib/iconv.lib'
Stop.
NMAKE : fatal error U1077: '"C:PROGRA~1Microsoft Visual StudioVC98BinNMAKE.EXE"' : return code '0x2'Stop.
=================================================================================
/src/makefile.msvc의 내용중에
/src/iconv.lib -> /src/iconv.obj으로 바꾸어서
compile을 한다면
=================================================================================
D:gnu_LIBICONVlibiconvlibiconv-1.8.tarlibiconv-1.8>nmake -f Makefile.msvc DLL=1 MFLAGS=-MD
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
cd libcharset
NMAKE -f Makefile.msvc all
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
copy includelibcharset.h.msvc-shared includelibcharset.h
1개 파일이 복사되었습니다.
cd lib
NMAKE -f Makefile.msvc all
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
cl -MD -LD localcharset.obj
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:localcharset.dll
/dll
/implib:localcharset.lib
localcharset.obj
cd ..
cd ..
copy libcharsetincludelibcharset.h liblibcharset.h
1개 파일이 복사되었습니다.
copy includeiconv.h.msvc-shared includeiconv.h
1개 파일이 복사되었습니다.
cd lib
NMAKE -f Makefile.msvc all
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
cl -MD -LD iconv.obj ..libcharsetliblocalcharset.obj
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:iconv.dll
/dll
/implib:iconv.lib
iconv.obj
..libcharsetliblocalcharset.obj
LINK : warning LNK4049: locally defined symbol "_locale_charset" imported
cd ..
cd src
NMAKE -f Makefile.msvc all
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
cl -I. -I. -I..include -I...include -IC:/MSVC/Include/-I..lib -MD -W1 -D_NDEBUG -O1 ./iconv.c ../lib/iconv
.obj -Feiconv.exe Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
iconv.c
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:iconv.exe
iconv.obj
../lib/iconv.obj
iconv.obj : error LNK2001: unresolved external symbol __imp__locale_charset
iconv.exe : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: 'cl' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:PROGRA~1Microsoft Visual StudioVC98BinNMAKE.EXE"' : return code '0x2'
Stop.
=====================================================================================
이런 내용이 출력됩니다.
DLL 생성에 도움을 바랍니다.
참고적으로 저는 win2000을 사용하구요.
MSVC은 ver 6.0 입니다.
저희가 사용하는 문자셋이 Euc-kr 맞죠..
그런데 왜 인식을 못하죠.
Unix처럼 configure 파일에 입력시킬 수도 없구 말이죠.
이방면에 고수분들 도와주세요~
http://www.gnu.org/software/libiconv/ 소스코드 주소입니다.
그리고 유용한 유니코드변환라이브러리 찾아요
읽어주셔서 고맙구요.
공부에 많은 도움이 되시기를 바랍니다.
~~~~~~~
한국 결승진출을 염원하며...