之前的程序运行没有问题,过了几天再跑出现了这个问题:OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
控制台写了如何解决:
OMP:错误#15:正在初始化libiomp5md.dll,但发现libiomp5md.dll已经初始化。
这意味着OpenMP运行时的多个副本已链接到程序中。这很危险,因为它会降低性能或导致不正确的结果。最好的做法是确保只有一个OpenMP运行时被链接到进程中,例如,避免在任何库中静态链接OpenMP运行时。作为一种不安全、不受支持、没有文档记录的解决方法,您可以将环境变量KMP_DUPLICATE_LIB_OK=TRUE设置为允许程序继续执行,但这可能会导致崩溃或默默地产生不正确的结果。欲了解更多信息,请访问http://www.intel.com/software/products/support/。
因此可以将下面两个代码粘贴在程序上面:
这两句代码的意思是:
这行代码设置了一个名为 `KMP_DUPLICATE_LIB_OK` 的环境变量,将其值设为 `'True'`。
这个环境变量通常用于解决使用 Intel 的 Math Kernel Library (MKL) 时可能遇到的问题。当存在多个 MKL 库实例加载到同一个进程中时,会出现冲突的情况。设置 `KMP_DUPLICATE_LIB_OK` 为 `'True'` 允许库继续执行即使检测到在同一进程中加载了多个库实例,因此是指"允许重复加载库"。
这通常在您使用依赖于 MKL 的库并遇到由于在同一进程空间加载了多个库实例而导致的冲突时是必要的。设置这个环境变量有时可以解决这样的冲突,但需要注意的是,并不总是最佳解决方案,应该谨慎使用。
便可以顺利解决报错。