2010-04-26 5 views
2

공식적인 코드 릴리스와 관련하여 질문이있었습니다. 처음으로 VS2008을 사용하여 저를 곰.Windows에서 정적 라이브러리와 같은 코드를 해제하는 방법

API에 라이브러리에 대한 액세스 권한을 부여하는 헤더 파일이 있습니다. 지금 디버그 및 릴리스 버전이 있습니다.

어떻게 고객에게 제공합니까? lib 파일을 헤더 파일과 함께 폴더 또는 lib 파일에 둘 필요가 있습니까? lib는 직접 사용할 준비가되었습니다. 하지만 디버그 대 릴리스 사이에 조금 혼란 스러워요.

감사합니다.

답변

1

하나의 .h 파일과 적어도 4 개의 .lib 버전을 제공해야합니다. 중요한 선택은 C/C++, 코드 생성, 런타임 라이브러리입니다. 클라이언트가 CRT의 정적 버전 또는 DLL 버전을 사용할 지 예측할 수 없습니다.

_default_CRT_NOFORCE_MANIFEST를 사용하면 클라이언트 매니페스트에서 사용하는 CRT 버전 번호를 삽입하지 않을 수도 있습니다.

+0

이 경우에는 정적 lib입니다. 나는 dll 버전을 잘 모르겠다. – user309312

+0

@djones : lib가 아니라 CRT의 lib. 클라이언트가/MD 버전으로 코드를 컴파일 할 가능성이 있습니다./MT로 컴파일 할 때 충돌이 심하게 발생합니다. 그리고 다른 방법. –

+0

다음은 잘못된 btw를 보여주는 스레드입니다. http://stackoverflow.com/questions/2728649/error-lnk2005-xxx-already-defined-in-msvcrt-libmsvcr100-dllc-something-libcm/2729823#2729823 –

2

사용자에게 lib의 헤더와 릴리스 버전을 제공해야합니다.

0

예, 당신이 제공 할 필요가 .H 및 libs와

일부 기업은 릴리스 LIB를 제공합니다.

(예 : 단일 대 멀티 스레드 라이브러리와 같이 더 많은 구성을 제공해야 할 수도 있습니다. 사용자가 lib를 사용하는 방법을 파악하고 다른 라이브러리와 충돌이 없는지 확인해야 할 것입니다.)

+0

제 3 자 응용 프로그램이 내 lib 디렉토리를 활용할 것이라는 것을 알고 있습니다. 하지만 난 그 단일 또는 멀티 스레드 ... 그들의 애플 리케이션인지 모르겠다. 그들은 또한 그것에 관해 나에게 아무것도 언급하지 않았다. – user309312

0

자신의 마음에 의구심을 해소하려면 라이브러리의 릴리스 버전에 의존하는 미니 테스트 응용 프로그램을 작성하십시오. 당신은 당신의 자신의 고객 일 수 있고 그것이 무엇인지를 볼 수 있습니다.

다른 컴퓨터에서 응용 프로그램을 작성한 다음 헤더 및 lib 파일을 복사하여 테스트 응용 프로그램의 릴리스 빌드를 수행 할 수 있는지 확인할 수도 있습니다.

+0

음, 이미 그렇게했습니다. 그저 내가 몇 가지 경고를했는데 그것을 할 수 없었습니다. 나는 복합 lib를 가지고 있기 때문에 제 3 자 lib + 내 물건을 모두 하나로 묶어서 사용하는 것을 즐겼습니다. 문제없이 컴파일하고 링크 및 실행할 수 있었지만 여전히 무엇보다 vs2008 요구 사항 일 수있는 경고가있었습니다. 예를 들어 vs2008이 보이는 일부 추가 파일이 있으며 lib를 만드는 데 사용 된 파일을 찾지 못하면 해당 파일을 찾을 수 없다는 불만이 있습니다. – user309312

+0

경고는 무엇입니까? 아마도 우리가 도울 수 있습니다. – quamrana

+0

경고 lnk4099 : PDB vc90.pdb가 광산 – user309312

관련 문제