如何处理.dll 依赖?
How to deal with .dll dependencies?
我用 C 编写了一个简单的 程序,它生成一个包含练习列表的 .tex 文件,并且 输出一个 pdf对 'pdflatex' 进行 system() 调用。
很明显它可以在我的 PC 上运行,因为 我已经安装了 miktex 整个软件包,但试图让它在其他 Windows 机器上运行弹出至少 4 .dll 依赖项.
我需要知道的是:
- 专业开发人员如何处理缺失的依赖项?
- 是否有开发人员遵循的程序来了解 .exe 文件需要哪些依赖项? (比如如果你想知道文件 foo.exe 的依赖项,你需要在 Google 上搜索 [...])
- 什么是最好的解决方案:复制我程序的发布文件夹中所有缺少的依赖项,或者提示用户安装 miktex?
- 什么是 .dll 文件?
- 开发人员如何生成它们?我知道它们与在可重用目标代码中编译源文件有关。
- 我会成为一名优秀的开发者吗?哦,对不起,我让一些想法流过我的手。
dll 是 "dynamic library" 安装在计算机上的预编译代码,可以在多个应用程序之间共享。与静态库相比,动态库的优点是您的安装包可以更小,并且库的开发人员可以修复所有应用程序然后从中受益的错误和安全漏洞。
在 MS dev studio 中,您可以选择构建一个 dll。使用 mingw64,您基本上只需将构建目标的名称设置为 whatever.dll。您确实需要标记希望客户使用的功能 "entry points",并为这些功能提供 header。
正确的软件包安装程序应该能够安装您的软件包所需的 dll。这可能意味着它会提示下载并安装附加包,或者 dll 包含在安装中。
是的,如果你一直问正确的问题:-)
我用 C 编写了一个简单的 程序,它生成一个包含练习列表的 .tex 文件,并且 输出一个 pdf对 'pdflatex' 进行 system() 调用。
很明显它可以在我的 PC 上运行,因为 我已经安装了 miktex 整个软件包,但试图让它在其他 Windows 机器上运行弹出至少 4 .dll 依赖项.
我需要知道的是:
- 专业开发人员如何处理缺失的依赖项?
- 是否有开发人员遵循的程序来了解 .exe 文件需要哪些依赖项? (比如如果你想知道文件 foo.exe 的依赖项,你需要在 Google 上搜索 [...])
- 什么是最好的解决方案:复制我程序的发布文件夹中所有缺少的依赖项,或者提示用户安装 miktex?
- 什么是 .dll 文件?
- 开发人员如何生成它们?我知道它们与在可重用目标代码中编译源文件有关。
- 我会成为一名优秀的开发者吗?哦,对不起,我让一些想法流过我的手。
dll 是 "dynamic library" 安装在计算机上的预编译代码,可以在多个应用程序之间共享。与静态库相比,动态库的优点是您的安装包可以更小,并且库的开发人员可以修复所有应用程序然后从中受益的错误和安全漏洞。
在 MS dev studio 中,您可以选择构建一个 dll。使用 mingw64,您基本上只需将构建目标的名称设置为 whatever.dll。您确实需要标记希望客户使用的功能 "entry points",并为这些功能提供 header。
正确的软件包安装程序应该能够安装您的软件包所需的 dll。这可能意味着它会提示下载并安装附加包,或者 dll 包含在安装中。
是的,如果你一直问正确的问题:-)