2009-10-21 5 views
3

동적 링크 라이브러리를 만들려는 C++의 소스 파일이 여러 개 있습니다. GCC는 -shared 및 LN C++ 소스 파일에서 Windows DLL 만들기

그러나 Windows 용 내가 DLL을 생성하는 소스 파일을 수정해야 할 것입니다 가정에

나는 리눅스에서 이런 일을 참조하십시오.

제공되는 소스 파일을 사용하여 DLL (Linux에서 * .so와 유사한 파일)을 생성 할 수 있습니까? 만약 내가 잘못하면, 제 생각에는 리눅스 용 dll이라고 생각합니다.

이유는 SWIG를 사용하여 Windows Platfrom의 Python에서 C++ 함수를 호출하는 것입니다. 나는 윈도우에서 dll을 생성해야하는 단계에 갇혀있다.

답변

4

정확한 접근 방법은 사용중인 컴파일러에 따라 다르지만 절차는 문서화되어있을 것입니다. 예를 들어, Visual Studio를 사용하여 DLL을 만들려면 연습을 here에 사용할 수 있습니다. DLL에 외부로부터 호출되어

+0

DLL을 만드는 과정은 사용하는 편집기에 따라 다릅니다. 응? – divegeek

+0

Durr, compiler. 결정된. –

2

DLL 함수는 특별한 매크로 키워드

__declspec (dllexport)의 공극 __cdecl 된 SomeFuncion (A, B의 INT를 int)를 가지고;

+0

또는 내보내기 정의가있는'.def' 파일을 만들어야합니다. – Thomas

1

어떤 컴파일러를 사용하고 있습니까? 비주얼 C++ 지정된 오브젝트 파일에서 동적 라이브러리를 생성하는 명령 줄은 다음과 같습니다의 경우 :

또한
link -nologo -dll -out:mylib.dll -implib:mylib.lib myobj1.obj myobj2.obj ... 

오브젝트 파일로 소스 파일을 컴파일하는 동안 당신이 필요한 모든 매크로를 정의하는 -D 옵션을 사용해야합니다 동적 라이브러리의 심볼을 내보낼 수 있습니다.