2011-09-07 4 views
3

기존 C++ 라이브러리를 lib와 dll로 모두 컴파일 한 다음 다른 응용 프로그램에서 정적 및 동적 라이브러리를 사용해야합니다. VS2010을 사용합니다.정적 라이브러리와 동적 DLL 모두로 C + + 라이브러리 컴파일 VS

내가 할 수없는 일은 라이브러리를 그대로 유지해야하므로 __declspec (dllexport) 명령을 내보내려면 모든 헤더 파일을 편집하는 것입니다.

Mac에서는 문제없이 dylib를 컴파일하고 사용할 수 있었지만이 점에서 VS가 부족하다는 것을 알고 있습니다.

VS에서는 "내 보낸"기능 (컴파일 타임에 응용 프로그램에서 링크 가능)을 갖기 위해 먼저 정적 라이브러리를 컴파일 한 다음 dll을 실행할 수 있습니까? 즉, __declspec (dllexport)로 생성 된 내보내기 라이브러리 인 것처럼 정적 라이브러리를 사용할 수 있습니까? 더 나은 해결 방법이 있습니까?

답변

2

lib와 dll로 기존 C++ 라이브러리를 컴파일해야하고 은 다른 응용 프로그램에서 정적 및 동적 라이브러리를 사용합니다. VS2010을 사용하면 입니다.

그에 대한 구성을 만듭니다. 등의 예를 출시 LIB, 릴리스 DLL의 경우,

내가 할 수없는 것은 도서관이해야으로 내보낼 지침을 __declspec (dllexport)를 추가하기 위해 모든 헤더 파일을 편집하는 것입니다 로 유지 그것은.

내 보낸 기능 목록과 함께 모듈 정의 파일 (* .def)을 간단히 추가하십시오.

즉, 내보내기 라이브러리 이 __declspec (dllexport)으로 생성 된 것처럼 정적 라이브러리를 사용할 수 있습니까?

아니요, 해당 라이브러리가 다릅니다. DLL을 빌드하면 바이너리와 lib 파일이 생깁니다.

+0

감사합니다. Sergius. VS가 생성 할 수있는 .def 파일인가요? 직접 작성해야합니까? 라이브러리에는 수십 개의 함수가 포함되어 있습니다. – step

+0

AFAIK VS은 빈 .def 파일 만 생성 할 수 있습니다. –

관련 문제