2016-06-21 8 views
0

내 프로젝트 내에서 Poco를 동적 런타임으로 정적 라이브러리로 사용하려고합니다. 필자는 Poco 1.7.3의 전체 소스를 다운로드하고 buildwin.bat 스크립트를 사용하여 자체 컴파일 된 OpenSSL 1.0.2h 공유 라이브러리 (즉, 경로를 buildwin.bat로 조정)를 사용하여 라이브러리를 컴파일했습니다.동적 런타임으로 정적 라이브러리로 Poco DLL의 가져 오기 라이브러리가 필요합니까?

PocoXYZmd.lib을 통해 buildwin.bat 140 build static_md debug Win32 nosamples notests msbuild을 생성하면됩니다.

그러나 내 프로젝트 내에서 PocoXYZmd.lib에 대한 링크를 시도하면 링커에서 PocoXYZ.dll의 가져 오기 라이브러리 PocoXYZ.lib을 검색합니다.

shared으로 Poco를 작성하고 링커 검색 경로 내에 PocoXYZ.lib 가져 오기 라이브러리를 제공하면 Poco 기호가 이미 정의되어있는 오류가 발생합니다 (분명히).

뭔가 중요한 것이 누락되었거나 Poco의 빌드 스크립트에 버그가 있습니까? 재단, XML, JSON, 백분율, 인터넷, 암호화, NetSSL_OpenSSL :


나는 만 다음과 같은 구성 요소를 구축 마시고 구성되었습니다.

은 또한, 나는 이러한 기반에서 올 수있는 곳 암호화 및 NetSSL_OpenSSL의 vcxproj -files 대신 libeay32md.libssleay32md.lib (아무 생각의 libeay32.libssleay32.lib (에서 OpenSSL DLL에 대한 가져 오기 라이브러리)에 연결하는 v140을 조정했다 OpenSSL 1.0.2h 빌드 스크립트).

Windows 7에서 Visual Studio 2015 업데이트 2를 사용하고 있습니다. 32 비트 Visual Studio 개발자 프롬프트에서 모든 작업을 수행하고 있습니다.

답변

1

마시고 문서를 다시 읽은 후, 나는 마침내 해결책을 발견 : 포코의 헤더에 정적으로 Windows에서 포코를 사용하는 경우 포코를 사용하여 라이브러리/응용 프로그램을 컴파일 할 때

, 하나 POCO_STATIC를 지정해야합니다, 그렇지 않으면 여러 #pragma comment 지침을 것이다 Poco의 DLL 버전에 자동으로 강제 연결.

http://pocoproject.org/docs/99150-WindowsPlatformNotes.html

감사합니다, RTFM.