代码之家  ›  专栏  ›  技术社区  ›  James C

如何构建程序,以便在EXE(代码块)位置不需要DLL

  •  1
  • James C  · 技术社区  · 11 年前

    经过一番努力,我成功地构建了一小段示例代码并使其运行。我在Win 7 x64机器上的CodeBlocks 13.12中使用C++。该程序使用wxWidgets和OpenGL库。

    问题是,为了使EXE成功运行,我必须将这些DLL文件复制到EXE的位置:

    • wxbase30ud_gcc481TDM.dll
    • wxmsw30u_core_gcc481TDM.dll
    • wxmsw30u_gcc48.dll
    • wxmsw30ud_core_gcc481TDM.dll
    • wxmsw30ud_gl_gcc481TDM.dll

    我想知道 如何构建程序(要在项目中更改哪些设置) 这样EXE文件就可以自己运行(也可以在其他机器上运行),而不会出现“丢失DLL”错误消息?若答案能概括和有用,作为未来类似问题的参考,那个就太好了。

    2 回复  |  直到 11 年前
        1
  •  1
  •   Bioniclegenius    11 年前

    在链接器中,可以添加与以下行类似的行:

    -static wxbase30ud_gcc481TDM
    

    然而,这不是非常有效或良好的做法。更好的做法是继续将dll包含在.exe中,并简单地提供一个用户可以移动到任何地方的程序快捷方式。这允许您将所有程序文件安装并保存在一起,但仍然让用户只担心一个文件。

        2
  •  0
  •   Ben Humphrey    11 年前

    您可以使用类似Enigma Box的东西,它将DLL打包到一个exe中,如果您调用LoadLibrary,它将按预期运行:

    http://enigmaprotector.com/en/about.html

    还有一些像ILMerge或XBundler我也听说过。。。但还没有使用过。我也听到了DLLPack。

    推荐文章