리눅스에서 amp 환경에서 작업을 하다가 부득이하게 윈도우즈로 포팅해야 하는 상황이 생겼다.
요즘 윈도우버전의 amp도 있다고는 들었지만 이렇게 간단하게 설치가 될 줄이야....

설치판 하나로 amp 뿐만아니라 phpmyadmin, tomcat 등 다양한 것들이 깔린다.

다운 받는 곳: http://www.apachefriends.org/en/xampp-windows.html

설치 후 확인해야 할 것
1) my.ini, php.ini에서 timezone을 Asia/Tokyo -> Asia/Seoul로 바꿀 것
2) php.ini에서 register_globals를 Off->On으로 바꿀 것
   : 이것 때문에 php에서 변수 값이 안넘어가서 삽질을 1시간이나 했다는.. ㅜㅜ
3) web의 Document_root는 c:\axmpp\htdocs 임.

그외 리눅스 소스의 윈도우 포팅 시 문제점.
윈도우 버전의 mysql library가 winsock2를 쓰면서 생기는 문제.
mysql library를 mysqlclient.lib를 사용하지 말고 libmysql.dll, libmysql.lib를 사용. 동적라이브러리 사용해서 해결.
그리고, 리눅스에서는 DB에 한글 입력 시 set names utf8 query를 날려야 하지만
윈도우는 set names euckr를 날려야 제대로 insert가 된다.

암튼 포팅하는데만 하루가 더 걸렸따..
안하던 xml에 웹까지 하려니.
힘들다 힘들어..

그래도 아직까지는 재미있네..^^


2. 프로젝트별 서브디렉토리 설정 (아파치 웹서버 설정)

XAMPP 를 설치한 이후 웹브라우저에서 http://localhost 라고 입력하면 XAMPP 가 설치된 디렉토리의 하위 디렉토리인 htdocs 디렉토리 아래의 index 파일이 실행된다.
이것은 httpd.conf 파일(XAMPP\apache\conf)에서

DocumentRoot "C:/XAMPP/htdocs"

와 같이 설정되어 있기 때문이다.

그런데 거의 대부분의 개발자들은 위 디렉토리를 로컬에서 개발하는 프로젝트의 루트디렉토리로 사용하지 않는다.
예를 들어서 D:\MyWebProject 라는 디렉토리를 웹프로젝트의 개발 루트 디렉토리로 사용한다라고 가정한다면 그 하위로 도메인별 루트폴더를 만들어서 프로젝트를 관리한다.

D:\MyWebProject\iwoohaha.com ==> iwoohaha.com
D:\MyWebProject\daesungmicro.com ==> daesungmicro.com
D:\MyWebProject\dkter.com ==> dkter.com

이런 경우 로컬에서 테스트하기 위한 웹주소를 다음과 설정해야 할 필요가 있다.

iwoohaha.com ==> http://localhost/iwoohaha
daesungmicro.com ==> http://localhost/daesungmicro
dkter.com ==> http://localhost/dkter

위와 같이 설정하기 위해서는 httpd.conf 파일에 Alias 를 추가설정하면 된다.

Alias    /iwoohaha          "D:/MyWebProject/iwoohaha.com/"
Alias    /daesungmicro    "D:/MyWebProject/daesungmicro.com/"
Alias    /dkter                  "D:/MyWebProject/dkter.com/"

Alias 이름에 /iwoohaha/ 처럼 마지막에 슬래시를 붙이는 것과 떼는 것의 차이는 직접 알아보는 것이 좋을 듯 하다.

신고

'빵꾸똥꾸 개발자 > Web' 카테고리의 다른 글

xampp  (0) 2010.03.24
Xerces-C++ install  (0) 2010.02.16
XML Data binding in C++  (0) 2010.02.16
Posted by 나마스떼

댓글을 달아 주세요

출처: http://jihune.com/tc/zemyblue/tag/298


visual studio 2005부터 MFC나 CRT등의 dll 라이브러리를 사용할 때 각각의 버젼을 달리 사용할 수 있도록 winSxS(side-by-side) 기능을 도입해서 배포할 때 주의를 기울이지 않으면 "Win32 error On14001"의 "응용 프로그램 구성이 올바르지 않기 때문에 이 응용 프로그램을 시작하지 못했습니다"라는 에러를 볼 수 있습니다.

이 는 dll이나 exe 파일을 컴파일 할 때 링크로 참조하는 dll 파일들을 버젼과 경로등을 manifest라는 파일로 관리하고 이를 dll, exe 파일에 포함시켜서 찾으려고 하는데 찾지 못하기 때문에 나오는 에러입니다.

제가 이 에러를 본것은 콘솔창에서 실행되는 프로그램을 개발했기 때문에 VC80.CRT라는 디렉토리에 있는 라이브러리를 찾는데. 이를 visual studio 2008이 설치되지 않은 다름 컴에서는 찾지 못하기 때문에 발생을 했었습니다.
컴파일을 할 때 object들이 생성되는 디렉토리에 보면은 <프로그램명>.<확장자(exe또는 dll)>.intermediate(또는 embed).manifest 파일을 보실 수 있습니다. 이를 열어보면 다음과 같습니다.

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level='asInvoker' uiAccess='false' />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>


(위 파일을 Release로 컴파일을 한후에 생성된 manifest 파일입니다.)
여기서 중요한 것은 굵은 글씨체로 표시한 부분인데 이 부분이 참조할 dll 파일들의 경로와 버젼등의 정보를 표시한 것입니다. 이것을 찾아야 하는데 이게 없기 때문에 프로그램이 실행되지 않고 에러가 나오는 것입니다.

여기서 Microsoft.VC90.CRT라는 디렉토리를 찾게 되는데 찾는 디렉토리의 순서가 다음과 같기 때문에 다음의 어떠한 경우라도 속하면 프로그램은 이상없이 실행될 수 있습니다.

  1. WinSxS하위의 Side-by-side가 속한 디렉토리, 그러니까. 위와 같은 경우에는 "C:/Windows/WinSxS/x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91" 를 찾습니다.
  2. 어플이 있는 디렉토리에서 해당 DLL 파일, 위와 같은 경우에는 Microsoft.VC90.CRT로 구성된 msvcm90.dll, msvcp90.dll, msvcr90.dll 이 어플과 같이 있으면 됩니다.
  3. 어플이 있는 디렉토리에서 <assemblyname>.manifest 파일
  4. 어플이 있는 디렉토리에서 <assemblyname>디렉토리 하위에 해당 DLL 파일
  5. 어플이 있는 디렉토리에서 <assemblyname>/<assemblyname>.manifest 파일
그 러므로 위와 같이 해당 파일이 dll 파일이 적절히 있다면 문제없이 실행될 것입니다. 여기서 assemblyname은 위와 같은 경우에는 Microsoft.VC90.CRT가 해당됩니다.

첫번째에 바로 검색될 수 있게 하기위해서는 참조하는 dll들을 자동으로 설치해주는 재배포 파일을 설치하면 됩니다. 재배포파일은 http://www.microsoft.com/downloads/deta ··· 62a191ee 에서 다운로드할 수 있습니다.

그런데 만약 Debug로 컴파일이 되었다면 Microsoft.VC90.DebugCRT가 더 추가되어 있을 것입니다.
제도 이것때문에 삽질을 했는데 분명 Release로 컴파일을 했는데. 컴파일 옵션에 _DEBUG가 들어가 있어서 일부가 Debug로 컴파일 되어서 manifest에서 DebugCRT를 요구했엇는데 VS 2005에서는 재배포 파일에 DebugCRT의 dll이 있는데 VS 2008 용 재배포 파일에는 Debug용은 CRT이든 MFC이든 모두 없으므로 아무리 설치를 했다고 해도 실행이 안되는 건 마찬가지 일 것입니다.

그 러므로 이를 해결하기 위해서는 Microsoft.VC90.DebugCRT를 해당 어플이 있는 디렉토리에 복사하던가 컴파일 시 Debug 정보가 없도록 해야 합니다.

Microsoft.VC90.DebugCRT는 <VS2008설치디렉토리>/VC/redist/Debug_NonRedist/x86/에 있습니다.
그리고 컴파일시에 Debug 정보가 있는지의 여부는 object 파일들이 생기는 중간 디렉토리 하위에 있는 manifest에 DebugXXX의 정보가 없으면 됩니다. 있다면 다시 한번 확인해 보세요.


이러한 해결법은 2005에서도 동일하게 적용됩니다. 재배포로 포함되는 dll들은 ATL, CRT, MFC, MFCLOC, OPENMP가 있습니다. 참조하세요.

일주일을 삽질한 결과입니다. ㅜㅜ

제가 문제를 해결할 때 참조한 사이트들입니다.

마이크로소프트에서 설명한 페이지
http://msdn.microsoft.com/ko-kr/library/ms235512.aspx
http://msdn.microsoft.com/ko-kr/library/ms235317.aspx 이는 설치형으로 프로그램을 배포해서 해결하는 방법입니다.

Side-by-side Assembly에 대해서 가장 잘 설명한 페이지
http://www.serious-code.net/moin.cgi/re ··· elibrary

저 하고 동일한 고민을 해결하는 과정이 그대로 적혀있군요. 전 이걸보고 힌트를 얻어서 해결할 수 있었습니다. ^^
http://www.panda3d.org/phpbb2/viewtopic ··· f64c61b5

신고

'빵꾸똥꾸 개발자 > Windows' 카테고리의 다른 글

win32 vc2005/2008 배포시 문제 해결  (0) 2010.03.24
[win32] libiconv 포팅하기  (0) 2010.03.17
Posted by 나마스떼

댓글을 달아 주세요

출처: http://www.dduri.net/blog/entry/ctags

1. ctags 란 ?
   = >  ctags는 프로그래밍 소스 코드의 태그 (전역변수 선언, 함수 정의, 메크로 정의)들의
          데이터 베이스(tags파일)을 생성하는 명령어입니다.
          커널 소스 분석등 작업에서 탁월한 성능을 발휘합니다

2. ctags 버전 확인하기
    = > (쉘에서)  $ctags --version 이라고 입력한다 설치 돼어 있는경우 버전 정보가 나옵니다
    cannat commond find  => 깔려 있지 않을시 에러 출력
    ( 대부분 기본리눅스에서 디폴트로 깔려 있지 않을것이다 처음 설치시 전체 설치 또는..
      선택 설치로 ctags를 설치 한경우라면 몰라도 디폴트로는 거의 안깔려 있습니다.
      특히 ubuntu 의 경우 원래 데스크탑용으로 개발 돼고 있어서.. 개발 툴이 하나도 안깔려 있기
      때문에 별또 설치를 필요로 합니다 )

3. ctags 설치하기
    => ubuntu 의 경우 레드헷 이나 페도라 등 다른 리눅스에 비해 비교적 쉽게 설치할수 있습니다
        레드헷일 경우 rpm 버전을 따로 다운 받아 설치 해야 하는 방면 데비안 계열 명령어
        apt-get으로 간편하게 설치가 가능합니다

    ubuntu 설치 하기
       (쉘에서) $apt-get install  ctags  (자동으로 최신 버전으로 설치 됩니다 )

    redhat 설치하기 http://sourceforge.net/projects/ctags (rpm 버전을 다운 받은후)
        (쉘에서) $rpm -ivf 다운받은 rpm 파일명 (으로 설치 하실수 있습니다)

    설치 완료 후 2번 과정 버전을 확인 하면 버전 정보가 재대로 나오면 재대로 설치가 되었습니다.
    레드헷 일 경우 lib.so 에러가 발생할수 있는데 버전이 안맞는 것을 깔면.. 설치가 재대로
    돼지 않는 문제점이 발생합니다 위 링크에서 최신버전 5.6.1 의 경우 페도라 5 용 이므로
    레드헷일 경우 5.0 버전 이나 찾아보시고 하위 지원 돼는 버전을 설치 해야 합니다..
    확인 결과 5.0.1 은 재대로 설치가 가능하더라고요..

4. tags 파일 만들기
    = > 우선 커널이 있는 폴더로 이동 합니다
           $cd /usr/src/linux/  <== ( 전 linux로 심볼릭 링크가 돼어 있습니다 안돼어 있다면
           심볼릭 링크를 만드셔도 돼고 직접 경로를 다 입력 하셔도 상관없습니다)
           심볼릭 링크 만들기 -> ln -s  /usr/src/커널폴더명 linux
           커널 폴더로 이동했으면 ctags -R 을 입력하여 tags 파일을 생성합니다
           시간이 좀 걸리는데 ls로  tags 파일이 생성 된걸 확인 합니다

          $cd /usr/include 폴더로 이동 합니다
           마찬가지로 ctags -R 명령으로 include 폴더도 tags 파일을 생성 합니다
           정상적으로 파일이 생성 되었다면 다음 단계로 넘어갑니다

5. ctags 설정 하기
    = > 설치 가 완료 되고 tags파일이 생성 되었다면 작업이 거의 끝난거나 마찬 가지 입니다.
           매번 vi 에서 ex모드 에서 입력하는거도 한계가 있으므로 .vimrc 파일에
           tags 를 설정 해두는게 편합니다
           vimrc 파일에 다음 라인을 입력 한후 저장합니다
           set tags=./tags,/usr/src/linux/tags,/usr/include/tags
           (linux 의 경우 심볼릭 링크 한경우)  직접 폴더를 입력 하신분은 경롱에 맞게 설정 합니다


사용하기          
=====================================================
여기 까지 했다면 설치 및 설정은 완료 되었습니다..

이제 사용 하는거만 남았는데
복잡하게 책에는 여러 옵션이 많지만 보통 잘안쓰는 옵션들은.. 거의 쓸일이 없고..
자주 쓰는 것만 다루겠습니다.

ex 모드 -> vi 에서 : 을 눌러서 명령을 입력 하는 모드를 말합니다
ex 모드에서 :tj 함수명 이나 구조체명 (왜 tj 인가 ?  tags jump 약어)
(찾고자 하는 함수명이나 구조체 이름등을 입력 하면 관력 이름 함수나 구조제..정보가 나타 납니다 )
보통 한두가개 아닌경우 스페이스바를 누르면 목록이 더나오며 d 를 누를 경우 한페이지씩..
보여 줍니다 나갈때는 q로 나갈수 있습니다 그럼 <CR> 이 나오는데 여기서 찾은 함수나 구조체
번호를 입력 하면 자동으로 점프합니다

다른 방법으로 가는 방법은 커널 소스를 vi열어서 분석하다가 함수 원형이나 구조체 이름에서
ctrl + ] 를 누르면 자동으로 태그를 찾아 갑니다
이전으로 다시 돌아 올때는 ctrl + t 를 사용 해서 돌아 올수 있습니다

ex모드 : sts 함수명 , 구조체명
위에서 설명한 tj와 비슷 하지만 한가지 다른점이 수평창분활을 해서 결과를 보여 줍니다

이외 명령이 더 있지만 실제 이거만 알아도 충분 합니다 나머지 이전으로 돌아가기 이런건..
거의 실제 사용 되지도 않습니다 위에 설명한 4가지 방법이 주로 쓰는 방법입니다.

[tip] 헤더 파일 바로 읽어 오기

#include <linux/kernel.h> <- 헤더파일 이름에 커서를 위치 한후

Ctrl + wf 를 누르면 창이 수평 분할되어 헤더파일이 열립니다

====================================================
cscope 를 이용한 2%로 채우기
    ctags만으로도 커널소스와 소규모 프로젝트롤 분석하는데 부족함은 없지만..
    2%로 부족한게 있다 ctags만으로는 지역변수나 전역변수가 사용된곳 은 찾기가 힘들다
    이때 cscope 사용하면 됩니다

cscope 설치 하기
    ubuntu = > $apt-get install cscope 로 간단히 설치 할수 있다 (데비안 계열의 강점)
    redhat
    (다운 로드)
    wget
http://belnet.dl.sourceforge.net/sourceforge/cscope/cscope-15.3-1.i386.rpm
    설치 하기
    $rpm -ivf cscope-15.3-1.i386.rpm

cscope 설정 하기
   cscope 설정은 좀 손이 많이 갑니다 (ctags에 비해...)
    우선 mkcscope.sh 파일을 만들어야 합니다
   ============ mkcscope.sh 파일 내용 ================
    #!/bin/sh
    rm -rf cscope.files cscope.files

    find . \ ( -name '*.c' -o -name '*.cpp' -o -name '*.cc' -o -name '*.h'
    -o -name '*.s' -o -name '*.S' \ ) - print > cscope.files

    cscope -i cscope.files
    ============================================
    파일 생성 후 파일 퍼미션 설정
    $chmod 755 mkcscope.sh
    $mv mkcscope.sh /usr/bin
    디렉토리 이동
    $cd /usr/src/linux (심볼릭 링크 아닐시 전체 경로)
    mkcscope.sh 실행  하면 빌드 돼면서 데이터가 만들어 집니다
    빌드 종료시 값을 입력 하는게 나오는데 ctrl + d를 눌러서 종료 합니다.
   
    이후 .vimrc 파일에 다음 내용을 추가 합니다
    =============================================
    set csprg=/usr/bin/cscope
    set csto=0(숫자 0)
    set cst
    set nocsverb

    if filereadable("./cscope.out")
       cs add cscope.out
    else
       cs add /usr/src/linux/cscope.out
    endif
    set csverb
   ==============================================
   이제  설정은 끝이 났습니다

   사용하기 ( cscope 의 명령 형식 )
    :cs find {질의종류} {심벌}
    ex) cs find s start_kernel

   cscope 의 질의 종류
    0 or s  - > Find this C symbol
    1 or g  - > Find this definition
    2 or d  - > Find functions called by this function
    3 or c  - > Find functions calling this function
    4 or t  - > Find assignments to
    6 or e  - > Find this egrep pattern
    7 or f   - > Find this File
    8 or i   - > Find files #including this file
신고

'빵꾸똥꾸 개발자 > Linux' 카테고리의 다른 글

printk  (0) 2011.05.13
mib2c 사용법  (0) 2011.05.02
ctags & cscope 설치 및 사용하기  (0) 2010.03.19
How to install GUI in Ubuntu 9.10 (Karmic) Server  (0) 2010.03.17
ubuntu 한글설정  (0) 2010.03.02
kdevelop로 리눅스에서 C 코딩 하기  (0) 2007.10.27
Posted by 나마스떼

댓글을 달아 주세요

출처: http://jaic.info/it_chie/81327/page/3
phpmyadmin사용 시 문자셋이 UTF-8일 경우
한글이나 일본어 등 유니코드가 깨져보일 경우

phpmyadmin 초기설정단계에서 MySQL 문자셋을 UTF-8 Unicode (utf8)로 지정해준다음
테이블안 필드의 collation 또한 UTF-8 Unicode로 설정해줘야 한다.

만약 이경우 한국어가 깨져보인다면
웹브라우저의 인코딩 혹은 phpmyadmin의 언어선택을 한국어로 변경해주면 된다.

또 php에서 DB연결할때에도 mysql_query('set names utf8');로 설정해줘야한다.
신고

'빵꾸똥꾸 개발자 > Database' 카테고리의 다른 글

phpmyadmin사용시 UTF-8일 경우  (0) 2010.03.19
Posted by 나마스떼

댓글을 달아 주세요


요즘 작업을 우분투 <-> 리눅스 왔다리 갔다리 하면서 하고 있다.
지금 내 작업 PC에는  ubuntu desktop 9.10을 설치하여 사용하고 있는데.
공용 서버로 오늘 우분투 서버를 깔아봤다.

석사이후론 애들만 시켜버릇해서. 리눅스를 깔아본게 몇년만인지.ㅋ
암튼 우분투 데스크탑만 깔다가 올만에 서버깔고 콘솔뜨니 당황스럽더라.ㅋ

암튼, Ubuntu 서버를 깔면 콘솔이 뜬다.
이럴경우 우분투 데스크탑을 쓰는 방법은 아래와 같다..

$sudo apt-get update
$sudo apt-get dist-update

$sudo apt-get install ubuntu-desktop

$sudo /etc/init.d/gdm start

The above command will install GNOME desktop

If you wan to install a graphical desktop manager without some of the desktop addons like Evolution and OpenOffice, but continue to use the server flavor kernel use the following command

$sudo aptitude install --no-install-recommends ubuntu-desktop

If you want to install light weight desktop install xfce using the following command

$sudo apt-get install xubuntu-desktop

If you want to install KDE desktop use the following command

$sudo apt-get install kubuntu-desktop


신고

'빵꾸똥꾸 개발자 > Linux' 카테고리의 다른 글

printk  (0) 2011.05.13
mib2c 사용법  (0) 2011.05.02
ctags & cscope 설치 및 사용하기  (0) 2010.03.19
How to install GUI in Ubuntu 9.10 (Karmic) Server  (0) 2010.03.17
ubuntu 한글설정  (0) 2010.03.02
kdevelop로 리눅스에서 C 코딩 하기  (0) 2007.10.27
Posted by 나마스떼

댓글을 달아 주세요

ibiconv 라이브러리는 GNU 프로젝트의 하나로 인코딩간의 변환을 지원한다. linux 계열의 소프트웨어에서 문자열 인코딩 변환은 전부 이 라이브러리로 이루어질 정도로, 아주 중요한 포지션을 담당하는 라이브러리이다. 예를 들어 php의 iconv() 함수는 최종적으로 이 라이브러리를 사용하게 된다.

Windows의 경우 인코딩 간 변환은 WideCharToMultiByte() 나 MultiByteToWideChar() 함수를 통해 할 수 있기 때문에 대부분의 경우 libiconv가 필요 없다. 하지만 Windows Mobile 환경에서는 OS 언어에 대한 문자열 변환만을 지원하기 때문에, libiconv와 같은 인코딩 변환 라이브러리가 필요해진다.

따라서 이 글에서는 libiconv를 Visual Studio에서 컴파일하는 방법을 살펴보기로 한다.

linux 쪽의 프로젝트를 포팅하는 경우에는 Visual Studio 프로젝트 파일을 어떻게 구성할지가 제일 난감하다. libiconv 의 경우도 어디서부터 손을 대어야 할지가 굉장히 난감했었는데, 소스 파일을 들여다 보면, 다행히도 대부분이 헤더 파일이고 c 파일은 몇 개 없다는 사실을 발견할 수 있다.

두번째로 다행인 점은 다른 오픈 소스 프로젝트와는 다르게, libiconv의 경우에는 몇 버전 전까지만 해도 Visual Studio 에서 native compile을 지원했었다. 하지만 아쉽게도, 이제는 mingw 프로젝트 때문에 win32용 응용 프로그램을 gcc로 컴파일할 수 있게 되어 더 이상 지원하지 않는다고 한다. 그러나 일단 VS용으로 터닦이 공사가 끝난 터라 큰 문제 없이 포팅 가능하다.

기본적으로 다음과 같은 수순으로 작업하면 된다. libiconv 1.13.1을 사용하였다.

  1. visual studio 에서 dll 프로젝트를 구성한다.
  2. 컴파일해야 하는 소스 파일은 3개.  lib/iconv.c  lib/relocatable.c libcharset/lib/localcharset.c   뿐이다. 컴파일 할 때 발생하는 include path 관련 에러를 모두 잡아준다.
  3. libcharset/include/libcharset.h.build.in 과 include/iconv.h.build.in 의 확장자를 수정하여 h 파일로 바꾼다. build.in을 사용하는 이유는 dll export 키워드를 넣어주기 위함이다.
  4. localcharset 에서 LIBDIR 관련 에러가 나는데, 주석으로 막아버린다.
  5. @HAVE_VISIBILITY@ 나 @DLL_VARIABLE@ @ICONV_CONST@ 따위가 있는데, 이건 autoconf 에서 자동으로 이름이 바뀌는 변수들로, 각각 없애고, 없애고, const로 바꿔주면 된다.

여기까지가 win32 용의 dll로 컴파일 하는 방법이다. 좀 더 자세한 변경 사항을 보고 싶다면, http://wiki.michgan.net/moin.cgi/iconv/Windows 을 본다.

Windows Mobile 용의 dll로 컴파일하려면 위의 작업에서 추가적으로 errno 변수 관련 작업을 해줘야 한다. Windows Mobile 에는 errno 변수가 없기 때문이다. 그냥 dll 내에서 int errno; 라고 선언하고 몇몇 매크로를 define 해주는 것으로 컴파일이 가능하다.
물론 errno 값을 dll 외부에서 확인하려면 조회할 수 있는 함수와 thread local storage에 저장이 되도록 구현해야겠지만, 에러 유무만 알면 됐지 뭐. diff 파일이 필요하다면 http://wiki.michgan.net/moin.cgi/iconv/WindowsMobile 을 본다.

이상으로 libiconv 프로젝트를 win32 용의 dll로 컴파일 하는 방법을 살펴 보았다.
참고로 libiconv는 LGPL 라이센스이다.

출처 : http://blog.michgan.net/49

신고

'빵꾸똥꾸 개발자 > Windows' 카테고리의 다른 글

win32 vc2005/2008 배포시 문제 해결  (0) 2010.03.24
[win32] libiconv 포팅하기  (0) 2010.03.17
Posted by 나마스떼

댓글을 달아 주세요

출처: http://tubbies.thoth.kr/?mid=blog&category=365486&document_srl=365554

1. 한글 설정


먼저 본인은 EUC-KR 문자셋을 선호하기 때문에 우분투의 기본인 UTF-8을 버리고
EUC-KR을 선택하는 것 부터 시작한다...윈도우와 어느정도 호환성이나 나비와 같은 입력기 때문에

1) 언어 패키지 설치
먼저 여러 Langauge가 깔리는걸 싫어해서 영어로 깔린 상태로 가정하면 한글팩이 안깔려 있으므로
$ sudo apt-get install language-pack-ko

2) 로케일 생성
한글 팩이 깔려 있다고 해도 한글 로케일이 설치가 되어 있지 않다면 한글  입력을 할 수 없으므로 로케일을 생성한다

$ sudo locale-gen ko_KR.EUC-KR

우분투의 아버지 데비안 경우에는

dpkg-reconfigure locales에서 나오는 목록에서

EUC-KR을 선택하면 된다

3) 나비 설치

한글 입력기로 필자는 nabi라는 프로그램을 선호하므로 이 프로그램을 설정 전에 깔아보면

$ sudo apt-get install nabi

그리고 이후 시작 프로그램으로 등록하도록 설정하면

설정 메뉴를 찾아 Session을 실행해서 Startup Program에 nabi를 등록한다

4) nabi 및 입력 인코딩 설정

gnome을 띄운 상태에서 사용자 계정으로
$ unset LC_ALL

$ export LANG=ko_KR.eucKR 

이렇게 해서 환경변수에 EUC-KR을 올린 후 설정을 하기 위해 나비를 실행시킨다

$ nabi &

이 후 나비가 GNOME의 기본 입력기가 될 수 있도록 해주면

$ export XMODIFIERS="@im=nabi" 

$ export GTK_IM_MODULE=xim

$ im-switch -c 선택 후 nabi 선택
(만일 im-switch가 없다면 $ sudo apt-get install im-switch 를 통해 설치하자)

재부팅 하고 즐겁게 사용하면 된다
신고

'빵꾸똥꾸 개발자 > Linux' 카테고리의 다른 글

printk  (0) 2011.05.13
mib2c 사용법  (0) 2011.05.02
ctags & cscope 설치 및 사용하기  (0) 2010.03.19
How to install GUI in Ubuntu 9.10 (Karmic) Server  (0) 2010.03.17
ubuntu 한글설정  (0) 2010.03.02
kdevelop로 리눅스에서 C 코딩 하기  (0) 2007.10.27
Posted by 나마스떼

댓글을 달아 주세요



티스토리 툴바