我在C ++中有多个源文件,我想用它创建一个动态链接库。
我在linux中看到这种情况发生在gcc -shared和ln
上然而对于Windows,我想我必须修改源文件以生成DLL。
有没有办法用提供的源文件生成DLL(类似于linux中的* .so的文件)。如果我错了,请纠正我,我想*对于linux来说这是dll。
需要这个的原因是使用SWIG在Windows Platfrom中调用python中的C ++函数。我陷入了需要我在Windows中生成一个dll的步骤。
答案 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选项来定义确保动态库符号将被导出所需的任何宏。