在创建新项目时,我总是偶然发现我的最终可执行文件或dll无法正常运行的问题,因为它缺少我正在使用的依赖项。
在我作为开发者的生活中,我已经看到了几种处理它的方法(我不喜欢任何方法)
- 设置所有这些依赖项的环境路径,以便操作系统可以找到它们(糟糕,因为非常不可移植,需要环境,赢得了开箱即用)
- 将可能较大的包的每个依赖项复制到二进制输出目录中(例如,无论需要多少个dll)。对于OSG,Qt等依赖项,这很奇怪,因为您通常不会链接较大包提供的所有dll,并且最终可能会复制比必要数据更多的数据。
- 使用细粒度的xcopy / robocopy或任何任务手动选择单个依赖项(以及可选的其pdbs)。 (不要因为它需要注意,我在Visual Studio中添加一个依赖项,然后我需要调整一些脚本)。有像依赖walker这样的工具可以帮助这个,但是,这可能仍然是不可移植的,因为你的VS中的包含路径可能有一个版本,如果你改变它,你需要在脚本中更改它,这太多了
Department of Redundancy Department
在大型项目或公司中,我认为这个问题非常普遍。他们在Visual Studio或Windows中没有任何帮助吗?我需要选择我的包含路径并正确导入lib路径才能编译二进制文件,但是我需要一些其他机制来实际工作。
我正在考虑以更一般的方式为更多项目解决这个问题,但我真的想知道我是否遗漏了一些东西。