2011-03-17 4 views
1

libpq를 사용하여 PostgreSQL 데이터베이스에 연결하려고하는데이 작업이 완료되면 사전 정의 된 함수를 호출하려고합니다. 방금 입력 한 conninfo 문자열을 가지고 연결을 테스트합니다. 내가의 이유로 많은 주제를 검색 한C++을 사용하여 libpq에 링크 오류가 발생했습니다.

g++.exe -c -I/C/Program\ Files/PostgreSQL/9.0/include -MMD -MP -MF build/Debug/MinGW-Windows/main.o.d -o build/Debug/MinGW-Windows/main.o main.cpp

mkdir -p dist/Debug/MinGW-Windows

g++.exe -o dist/Debug/MinGW-Windows/toolboxconnect build/Debug/MinGW-Windows/main.o -L/C/Program\ Files/PostgreSQL/9.0/lib -lpq

c:/Program Files/PostgreSQL/9.0/lib/libpq.dll: file not recognized: File format not recognized
collect2: ld returned 1 exit status

: 마지막으로 서로 다른 코드 디렉토리와 라이브러리 경로를 포함하는 방법을 파악 후 (Windows 7에서 넷빈즈 6.9.1을,는 MinGW 컴파일러) 내 프로젝트에서, 나는이 오류를 찾을 수 왜 이것이 인식되지 않을 지 모르겠지만, 사람들은 64 비트를 실행하고 dll을 다시 빌드해야하기 때문에 다른 사람들에게 제안합니다. PostgreSQL 설치시 makefile을 사용하여 다시 컴파일해야한다고 생각하지 않으며 그대로 사용하는 것이 좋습니다. 내 링커가 내 libpq 라이브러리/다른 종류의 수정 프로그램을 좋아하지 않는 다른 이유가 있습니까?

답변

2

Someone else도 libpq와 비슷한 문제가 있습니다.

그 대답에 이어지는 토론에서 download the source code에 대한 링크가 있으므로 필요에 맞게 다시 작성할 수 있습니다. 사용할 수있는 버전이 다르므로 원하는 버전을 다운로드하십시오.

"당신의 의존성이 작동하지 않습니다. 소스를 다운로드하고 직접 컴파일하십시오!"라는 종속성 지옥에 당신을 붙이기가 정말 싫습니다. - 슬프게도, 그 순간에 포스트그레스를위한 유일한 옵션 인 것 같습니다.