4

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

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

但是对于 Windows,我想我必须修改源文件才能生成 DLL。

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

需要这样做的原因是在 Windows Platfrom 中使用 SWIG 在 python 中调用 C++ 函数。我被困在需要我在 Windows 中生成 dll 的步骤上。

4

3 回答 3

4

确切的方法取决于您使用的编译器,但该过程可能已记录在案。例如,如果要使用 Visual Studio 创建 DLL,可在此处获得演练。

于 2009-10-23T23:27:13.740 回答
2

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

__declspec(dllexport) void __cdecl SomeFunction(int a, int b);

于 2009-11-12T19:54:57.477 回答
1

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

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

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

于 2009-11-12T20:17:50.037 回答