从C ++源文件创建Windows DLL

时间:2009-10-21 23:22:42

标签: windows dll visual-c++ swig

我在C ++中有多个源文件,我想用它创建一个动态链接库。

我在linux中看到这种情况发生在gcc -shared和ln

然而对于Windows,我想我必须修改源文件以生成DLL。

有没有办法用提供的源文件生成DLL(类似于linux中的* .so的文件)。如果我错了,请纠正我,我想*对于linux来说这是dll。

需要这个的原因是使用SWIG在Windows Platfrom中调用python中的C ++函数。我陷入了需要我在Windows中生成一个dll的步骤。

3 个答案:

答案 0 :(得分:4)

确切的方法取决于您使用的编译器,但可能记录了该过程。例如,如果要使用Visual Studio创建DLL,则可以使用演练here

答案 1 :(得分:2)

可从DLL外部调用的DLL函数具有特殊的宏关键字

__ declspec(dllexport)void __cdecl SomeFunction(int a,int b);

答案 2 :(得分:1)

您使用的是什么编译器?对于Visual C ++,从给定对象文件创建动态库的命令行如下所示:

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

同时在将源文件编译为目标文件时,您需要使用-D选项来定义确保动态库符号将被导出所需的任何宏。