Fan*_*Lin 5 directory dll runtime visual-studio-2010
我有一些外部依赖项加载我的C++程序,如boost或其他库.如果那些.DLL的库不在$ PATH中,一旦我运行我的程序,我得到一个"无法加载DLL"错误消息.为了使这些.DLL可以在运行我的程序时加载,我需要将这些路径添加到libraries目录.例如:
PATH=$PATH;c:\boost\lib
Run Code Online (Sandbox Code Playgroud)
它有效,但我不喜欢这种使全球环境变脏的愚蠢解决方案.此外,我有更多的依赖项添加.这样做的最糟糕的事情是,一旦你有不同版本的依赖项,它就会非常烦人.例如,你有一个项目A取决于boost1.3.7,要开发它,你必须改变PATH
PATH=$PATH;c:\boost1.3.7\lib
Run Code Online (Sandbox Code Playgroud)
而且,在这里你需要开发另一个项目B,它依赖于boost1.4.4,哦,很棒....改变变量
PATH=$PATH;c:\boost1.4.4\lib
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这不是一个聪明的解决方案....如果您有多个库链接,那将是一场真正的噩梦.我想要的是修改VC++项目的属性,只有在运行/调试我的程序时才将这些路径添加到PATH变量.我试图添加路径
VC++ Directories -> Executable Directories
Run Code Online (Sandbox Code Playgroud)
但它似乎是建筑的道路,而不是跑步.那么,如何正确添加VC++项目的路径以正确运行我的程序呢?
不确定为什么您考虑将其添加到 PATH 作为“愚蠢”的解决方案?这是第三方库的一个非常常见的解决方案。如果您想重新分发应用程序,或者只是从命令行运行它而不是在 VS 下运行它,该怎么办?
如果你坚持不修改全局路径,也可以尝试:
顺便说一句,要解决版本控制问题,请使用符号链接:
mklink /J c:/boost c:/boost1.3.7
Run Code Online (Sandbox Code Playgroud)
然后将 c:/boost 添加到您的 PATH 中。如果版本更改,请更改符号链接而不是环境