【问题标题】:Creating Windows DLL from C++ source files从 C++ 源文件创建 Windows DLL
【发布时间】:2009-10-21 23:22:42
【问题描述】:

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

我看到这发生在 linux 中,使用 gcc -shared 和 ln

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

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

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

【问题讨论】:

    标签: windows dll visual-c++ swig


    【解决方案1】:

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

    【讨论】:

    • 创建DLL的过程取决于你使用的是哪个EDITOR?嗯?
    【解决方案2】:

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

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

    【讨论】:

    • 要么,要么您必须创建一个带有导出定义的.def 文件。
    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      相关资源
      最近更新 更多