database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 7431 게시물 읽기
No. 7431
Visual Studio build 시 dmetaphone.c 컴파일 에러
작성자
김대청(dcmru)
작성일
2008-05-27 18:08ⓒ
2008-05-27 18:27ⓜ
조회수
9,191

별걸다 질문드리네요.


윈도우에서 패키지를 만들어볼려고, 삽질중인데, 펄까지 설치하고, Visual Studio 2005 도 설치를 한다음 기타 라이브러리 사용하게


설정하고, build 했더니 postgresql-8.3.1\contrib\fuzzystrmatch\dmetaphone.c 나타난 파일에서 에러가 나내요. 


case 문 내의 문자가 아스키코드가 아닌것 같은데, 윈도우에서 컴파일 해보신분 있으시면 조언 부탁드립니다.


CVS 도 땡겨오고 하고 있는데, 환경설정부터 막히네요 ㅡㅡ;


구글링해도 별다른 답이 안보입니다. 한글 환경에서 컴파일이 안되는것인지...... 


파일을 유니코드로 바꿔도 안되네요...


한글판 버그랍니다. ㅡㅡ; 서비스팩 설치해봐야겠습니다.

이 글에 대한 댓글이 총 10건 있습니다.

^^;

에러 내용한번 올려주시겠어여


저도 몇번 그런 경험이 있어서 ^^;


그럼

김병석(byung82)님이 2008-05-27 18:52에 작성한 댓글입니다.
.\contrib\fuzzystrmatch\dmetaphone.c(495): error C2001: 상수에 줄 바꿈 문자가 있
습니다.
.\contrib\fuzzystrmatch\dmetaphone.c(496): error C2146: 구문 오류 : ':'이(가) 'M
etaphAdd' 식별자 앞에 없습니다.
.\contrib\fuzzystrmatch\dmetaphone.c(1071): error C2001: 상수에 줄 바꿈 문자가
있습니다.
.\contrib\fuzzystrmatch\dmetaphone.c(1072): error C2146: 구문 오류 : ':'이(가) '
current' 식별자 앞에 없습니다.
.\contrib\fuzzystrmatch\dmetaphone.c(1072): error C2196: case 값 '16186'을(를)
이미 사용했습니다.
    경고 0개
    오류 5개

에러내용입니다.

DoubleMetaphone 함수내의 case 안에 문자가 아스키문자가 아닙니다. 495라인과 1071라인입니다.

dmetaphone.c 파일을 유니코드포맷으로 바꿨더니 경고는 없어졌습니다.

서비스팩 설치해도 마찮가지네요. 어떻게 해결해야할까요? 


김대청(dcmru)님이 2008-05-27 19:28에 작성한 댓글입니다.
이 댓글은 2008-05-27 19:34에 마지막으로 수정되었습니다.

^^;


그냥 utf-8로 저장을 하시면 안됩니다.


이미 글자가 깨지기 때문에


iconv를 사용하셔서 utf-8로 변경후 하셔야 합니다.


바꾸어서 올려드리려 했는데 원 소스의 character set을 모르겠군여 ^^;


그럼

김병석(byung82)님이 2008-05-27 22:03에 작성한 댓글입니다.

답변 감사드립니다. 원본 charactorset 을 ISO-8859-1 로 해보니 변경이 되었습니다.

제대로 한것인지는 모르겠으나 컴파일 한 번 해봐야겠습니다.

configure 를 해야할것같아 cygwin 을 설치중인데, cygwin 이 필요한것 맞죠?

매뉴얼을 보면 필요없다고 나오기는 하는데... 애매합니다.

README 에는 ./configure 가 있고 ㅡㅡ;

그렇다고 cygwin 의 환경에 의해 configure 를 해도 되는것인지 의문이 드는군요.

일단 configure 를 안하면 소스코드나 헤더가 생성이 안되 컴파일이 안되는것 같습니다.

아니면 펄코드에 의해 자동으로 생겨야하는것인가요?

윈도우환경에서 컴파일할려고 할 때 기타 설치해야되는것이나 필요한 작업이 있으면,

알려주세요 ^^;

김대청(dcmru)님이 2008-05-27 22:36에 작성한 댓글입니다.
이 댓글은 2008-05-27 22:55에 마지막으로 수정되었습니다.

^^;


저도 직접 postgresql을 컴파일 해본적은 없어서..


혹시 컴파일 관련 url을 있으면 알려주시면


읽어보고 해보고 답변드리겠습니다.

김병석(byung82)님이 2008-05-27 22:52에 작성한 댓글입니다.

현재 보고 installer 를 참고하고 있는곳은 http://pgfoundry.org/projects/pginstaller/ 입니다.

CVS 를 봐도 애매합니다.

아니면 컴파일되어 있는 바이너리로 installer 를 만드는 방법이 있을까요?

김대청(dcmru)님이 2008-05-27 22:56에 작성한 댓글입니다.

기본의 패키지 말고 따로 패키지가 필요하신건가여 ??


http://www.postgresql.org/docs/8.3/static/install-win32-full.html#AEN21312


여기에는 config.pl


과 기타 등등으로 컴파일을 한다는데


저 config.pl이 어디 있는지모르겠군여


installer의 installer 방식만 알아내면 setup의 압축을 풀어서 새로 installer로 만드셔도 되고


installer에서 postgresql의 설치 유무를 확인에서 postgresql 사이트에서 배포하는 것을 installer안에서


실행을 시켜 설치하셔도 됩니다


그럼

김병석(byung82)님이 2008-05-27 23:03에 작성한 댓글입니다.

네 따로 패키지를 해볼려고 합니다.

설치 시 기본값등을 변경할려고 합니다.

그런데 윈도우즈 패키지의 배포형태가 msi 입니다. setup 이 아닙니다.

msi 로 옵션을 줘서 slient 모드로 설치가능한데 약간의 버그로 로케일이 PC걸로 설치되어 버립니다.

나머지 옵션들도 자동으로 설정하게 하기위해 작업을 시도하고 있습니다.

config.pl 은 압축을 푼 후 src\tools\msvc 밑에 있습니다.

config.pl 을 수정하여 지원할 옵션만 수정한 상태이고, perl mkvcbuild.pl 하면 압축푼 상위디렉토리에

pgsql.sln 가 생기는데, 이것을 Visual Studio 2005 로 열어 컴파일하니 금방 컴파일이 되어버렸습니다.

뭔가 진전이 있는것 같은데, 그리고 pginst 를 CVS 에서 가져와 msbuild 로 msi 를 만드는것같은데, 

지금 필요해보이는 CVS 다땡겨온 상태이고 ^^; 컴퓨터가 상당이 지져분해져있습니다. ㅡㅡㅋ

인제 펄을 이용해 인스톨하면 될것같은데, msi 만드는 과정에서도 소스 컴파일을 하는것같은데,

이과정을 건너띄고 배포하고 있는 바이너리로 그냥 만들 수 있지않을까하고 생각을 해봤던것입니다.

하여튼 지금 복잡한 상태입니다. ^^;

작업상황은 SDK CMD 에서는 파일의 charactorset 때문에 에러가 납니다.

알려주신대로 해당 파일만 컨버전하여 해볼려고합니다.

Visual Studio 2005 에서 열어서 하면 에러가 안납니다. ㅡㅡㅋ

늦어서 인제 집에 가봐야겠습니다. ㅠㅠ

생각해보니 cygwin 필요없는것같군요......

김대청(dcmru)님이 2008-05-27 23:08에 작성한 댓글입니다.
이 댓글은 2008-05-28 01:26에 마지막으로 수정되었습니다.

영문윈도우에 영문 Visual Studio 2005 로 컴파일하니 컴파일이 잘됩니다.

한글판 Visual Studio 2005 의 버그로 컴파일이 안되었습니다.

의존적인 패키지들이 이제 문제가 되는군요.

pgAdmin3, pgdebugger, StackBuilder 등등 환경잡기 너무 어렵습니다. ㅠㅠ

김대청(dcmru)님이 2008-05-28 20:52에 작성한 댓글입니다.
이 댓글은 2008-05-28 20:53에 마지막으로 수정되었습니다.

패키지를 만드는데 성공하였습니다.

패키지를 조금 입맛에 맞게 고치는데도, 삽질을 많이 하였습니다.

Windows Installer 의 Custom Action 을 사용하여 기타의 행동을 할 수 있게 변경가능한것같습니다.

이것은 http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pginstaller/pginst/ca/ 있는 pginstca.c 소스를 수정하셔서 사용하시면 됩니다.

패키지에 사용되는 프로그램은 컴파일된것을 가져다 사용하였습니다.

그리고 로케일이 Korea,Korean 이 되는것이 설치될 때 컴퓨터의 로케일을 얻어와서 세팅을 합니다.

그래서 silent 모드로 설치될 때 로케일을 지정해도, 무시되는 버그가 발생하였나봅니다.

내부에 보니 일본쪽은 locale 은 C 와 서버의 엔코딩을 UTF8이 기본으로 되게 해놓았더군요.

물론 설치중에 지정을 하면 바꿀 수 있습니다.

우여곡절 끝에 패키지 구조를 완성하였지만 제대로 한건지 모르겠습니다. ㅡㅡ

김대청(dcmru)님이 2008-06-09 00:05에 작성한 댓글입니다.
이 댓글은 2008-06-10 02:21에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
7434tsearch2 에 KTS 접목하기. [10]
김병석
2008-05-29
8633
7433v8.3.1 로 업그레이드 한후 조회 속도가 많이 떨어지네요. 저만그런건가요? [1]
박근준
2008-05-28
6574
7432tsearch2 에 kts접목에 관해서 [4]
김병석
2008-05-27
6713
7431Visual Studio build 시 dmetaphone.c 컴파일 에러 [10]
김대청
2008-05-27
9191
7430v8.3.1 에서 늘어난 데몬의 역할이 뭔가요? [2]
김대청
2008-05-27
6667
7429psql -l 에서 에러가...TT [1]
이진수
2008-05-24
6728
7428생성된 데이타베이스를 모두 보는 명령어 [2]
이진수
2008-05-24
6705
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다