到目前为止,我们的应用程序只使用了32位二进制文件,这已经足够了。慢慢地,我们看到需要为一些组件引入64位版本(除了32位版本之外),主要是为了与其他不是我们自己编写的64位组件进行接口。
弹出的一个问题是,我们是否希望64位组件(EXE +DLL)的名称与32位组件的名称相同,并将它们放在另一个目录中,还是希望以不同的名称(例如,32位的tool.exe和64位的tool64.exe )将它们留在同一目录中。
微软似乎走了一条为大多数Windows组件(WoW64)使用不同目录和相同名称的路线,如果整个应用程序是64位的,我们也可以只使用Program Files目录而不是Program Files (x86)目录。
然而,在我们的例子中,我们有一个主要是32位的应用程序,它使用一些64位组件(可执行文件)来做64位的事情,对于其中的一些组件,我们也使用了32位版本。
那么,我们是重命名组件并将它们放在相同的二进制目录中,还是保持二进制文件的名称不变并将其放入子目录中?
好处和坏处是什么?
发布于 2013-06-20 18:49:07
现在我必须链接到64位boost库DLL。
Boost 64位DLL have the same name作为其32位副本,Boost Build中的there is no built-in way用于更改输出名称,如果您希望将它们放在同一目录中,则使用creating additional work。
例如,Qt没有在他们的DLL中包含任何平台或Looking around标签,如果您需要在同一目录中使用32位和64位,这将再次产生问题。
所以,看起来如果你在你的应用程序中有第三方DLL依赖,并且你需要同时安装32位和64位的应用程序,那么,不管你如何命名可执行文件(或者你的DLL)本身,把它们放到不同的目录下似乎是一个好主意,因为这样就很容易处理那些没有用位“标记”它的DLL的第三方程序,因为there really isn't a good way不需要从相同的目录加载具有相同名称的不同的DLL(除非你把它们放到System32 / SysWOW64中,这是你不应该的)。
发布于 2013-06-14 23:06:18
如果我们讨论的是一个单独的应用程序,那么它的所有文件都应该保存在一个单独的目录中。表示PF或PF(x86)。但不会散布开来。
关于组件,问问你自己。这些组件是可互换使用的,还是并行使用的?
如果是前者,则使用相同的名称,这将简化您的部署。但是,如果可以同时使用这两个库,例如,32位进程和64位帮助器进程都使用的DLL,那么可以拆分它们的名称。否则,您将需要拆分目录结构。
https://stackoverflow.com/questions/17064523
复制相似问题