此问题已在 SO 上被多次询问和回答,但我无法获得适合我的情况的建议解决方案。我正在使用一个依赖于许多 (~50) DLL 的库。这是 Windows 7 x64、Visual Studio 2015、C++。
目标:(1) 在开发期间,让调试器访问所需的 DLL。 (2) 对于部署,在 Windows 安装程序中或作为压缩文件提供所需的 DLL,以将其复制到可执行文件的文件夹或其他文件夹中。如果 DLL 不在可执行文件的文件夹中,则需要有一种在执行期间告诉 pgm 的方法。
对于 (1),我尝试修改 Configuration Properties/Debugging/Environment 变量,以添加 DLL 的路径,C:\ProgramFiles\Octave\Octave-4.2.1\bin。由于某种原因,这不起作用。
在我更改任何内容之前,配置中显示的环境变量是$(LocalDebuggerEnvironment)
,评估值是PATH=;%PATH%
,继承值是PATH=$(VCRedistPaths)%PATH%
。
添加我的条目后,我有
环境:
PATH=C:\ProgramFiles\Octave\Octave-4.2.1\bin%PATH%$(LocalDebuggerEnvironment)
我的条目:
PATH=C:\ProgramFiles\Octave\Octave-4.2.1\bin%PATH%
评估值:
PATH=C:\ProgramFiles\Octave\Octave-4.2.1\bin%PATH%
PATH=;%PATH%
继承值:
PATH=$(VCRedistPaths)%PATH%
但是启动调试器并没有找到 DLL。
更改 VS 调试器路径环境的正确方法是什么?
处理第 (2) 部分部署的建议方法是什么?
最佳答案
一些 PATH
环境变量串联看起来有问题。
尝试在文字字符串和变量的逻辑串联处插入 ;
(分号)分隔符。
例如:
PATH=C:\ProgramFiles\Octave\Octave-4.2.1\bin%PATH%$(LocalDebuggerEnvironment)
会变成:
PATH=C:\ProgramFiles\Octave\Octave-4.2.1\bin;%PATH%;$(LocalDebuggerEnvironment)
和
PATH=C:\ProgramFiles\Octave\Octave-4.2.1\bin%PATH%
会变成:
PATH=C:\ProgramFiles\Octave\Octave-4.2.1\bin;%PATH%
等等。
关于c++ - 如何在调试和重新分发期间包含 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43794638/