2013-05-12 3 views
0

Windows에서 PostgreSQL 클라이언트를 빌드하는 데 문제가 있습니다. 실제로, 그것은 잘 컴파일되고 컴파일러 컴퓨터 (응용 프로그램을 컴파일 한 컴퓨터)에서 원활하게 실행되지만 다른 컴퓨터 (postgresql 서버가없는 컴퓨터)에서 오류가 발생하여 * .dll을 찾을 수 없습니다. .dll을 응용 프로그램의 폴더에 수동으로 추가하여이 문제를 해결했습니다 (이 문제를 해결하는 좋은 방법이라고 생각하지 않으며 32 비트 컴퓨터에서만 작동합니다).PostgreSQL 독립 실행 형 응용 프로그램

어떤 라이브러리를 링크해야하는지 또는이 상황을 어떻게 처리 할 수 ​​있습니까?

감사합니다.

+0

PostgreSQL 설명서에서 필요한 파일은 무엇입니까? 웹에서 "dll walker"를 검색하십시오. –

+0

@ThomasMatthews http://dependencywalker.com/에서 종속성 워커 (depends.exe)를 의미한다고 생각합니다. –

답변

1

대부분 PostgreSQL 클라이언트 라이브러리 인 libpq.dll을 사용하고 있습니다. Dependency Walker을 사용하여 필요한 라이브러리를 결정할 수 있지만 메모리에서는 PostgreSQL bin 디렉토리와 동일한 디렉토리에있는 openssl DLL과 zlib 만 필요합니다. 나는 지금 당장 체크 할 수있는 편리한 윈도우 박스가 없다. libpq 그리고 PostgreSQL bin 폴더의 직접적인 종속성은 응용 프로그램 실행 파일과 동일한 디렉토리에 응용 프로그램과 함께 제공되어야합니다. 앱을 제외한 다른 곳에서는 사용하지 않으며 시스템의 다른 곳에 설치된 소프트웨어와 충돌하지 않습니다.

내가 당신을 물어 뜯을 수 있다고 생각되는 추가 종속성이 있습니다. 적절한 버전의 Microsoft Visual Studio C++ 재배포 가능 파일이 대상 컴퓨터에 설치되어 있어야합니다. 이것은 PostgreSQL 인스톨러에 의해 자동으로 설치됩니다. 응용 프로그램에 libpq을 번들로 설치하는 경우 설치 프로그램은 재배포 자도 실행해야합니다. 필요한 버전은 사용중인 PostgreSQL 버전에 따라 다릅니다 (언급하지 않으 셨습니다). 그것은 의존성 워커로 결정될 수있다.

+0

찾았 음 : http://www.postgresql.org/docs/9.2/interactive/install-windows-libpq. html 당신이 말하는 libpq.dll과 같은 것입니까? 다른 기계 (arhitectures)는 어떨까요 : 32 비트/64 비트. 다른 DLL을 제공해야합니까? – dan

+1

@ Dan 앱이 64 비트 플랫폼 용 원시 64 비트 실행 파일로 컴파일 된 경우 64 비트 libpq를 번들해야합니다. 64 비트 윈도우에서 SysWow64를 사용하여 32 비트 프로세스로 실행되는 응용 프로그램의 경우 32 비트 libpq가 필요합니다. –

+0

32 비트 컴퓨터에서 내 앱을 컴파일하면 32 비트 DLL 만 제공해야합니다. – dan

관련 문제