我有同一个DLL文件的不同版本,我想确保它链接到最新版本。 但是在LIB文件中,只指定了“filename.dll”,我猜它会在不同的文件夹中检查,直到找到它。
我怎样才能确保它用的是我想要的那个?
问题是我想使用OpenCL库与OpenGL交互。 但由于AMD-APP已经从官方网站上删除,我下载了最后一个版本,它可能是旧的。 因为我在clinfo
中的设备获得的驱动程序版本是1.2(我需要>=2.0)。
所以我安装了Radeon软件Adrenalin thingy for graphics,它给了我一个新版本的DLL文件(amd_opencl32.DLL),clinfo
程序返回2.0的驱动程序版本。
旧版AMD-APP的opencl.lib链接到一个opencl.dll,有什么办法我可以把它链接到新版本吗? 我是在尝试一些不可能的事情还是很糟糕的事情?
LIBs仅按名称引用DLL,而不按版本,路径或任何其他唯一标识符引用DLL。
当您的进程启动时,它从特定的路径搜索算法解析其对“filename.dll”
的依赖关系。 几乎总是先在与EXE本身相同的目录中查找DLL,然后再返回到其他目录。 您需要知道的一切都记录在这里:
动态链接库搜索顺序