在Linux/GCC上,我可以使用-rpath标志来更改共享库的可执行文件搜索路径,而无需使用环境变量进行调整.
这可以在Windows上完成吗?据我所知,dll总是在可执行文件的目录和PATH中搜索.
我的场景:我想根据属性(32/64bit/Debug/Release)将共享库放入位置,而不需要处理唯一的名称.在Linux上,这很容易通过rpath完成,但我还没有找到任何方法在Windows上这样做.
谢谢你的任何提示!
kbl*_*uck 22
可悲的是,RPATH没有直接的类比.有许多替代的可能性,每一种都可能以其特殊的方式对您不利.
鉴于您无论如何都需要为每个构建版本使用不同的exe来避免运行时库冲突,因为您可能认为最简单的方法是将每个exe放在与每组DLL相同的文件夹中.
正如您所提到的,最通用的方法是通过使用批处理文件来引导exe来更改PATH变量.
您可以在将程序运行到所需的DLL文件夹之前更改当前工作目录.
您可以在exe中使用函数SetDllDirectory或AddDllDirectory.这可能是最接近RPATH的,但仅适用于WinXP SP1或更高版本.
如果您愿意更改每个exe风格的文件名,可以使用"App Paths"注册表项.每个exe都需要一个唯一的文件名.
归档时间: |
|
查看次数: |
9712 次 |
最近记录: |