我有一个使用 OpenCV 库的应用程序。此应用程序必须安装在运行 Windows XP 32 位的旧 PC 上。运行应用程序时出现错误:
Kernel32.dll unable to import InitializeCriticalSectionEx
根据我的搜索,要解决此问题,我必须通过将变量 _WIN32_WINNT
设置为 0x0501
来告诉编译器该库将在 Windows XP 上使用。我正在尝试应用在 this entry in github 中找到的解决方案,但我对编译器不是很有经验,而且我很难找到文件 CMAKE_CXX_FLAGS
和 CMAKE_C_FLAGS
。谁能准确解释我必须修改的文件?
我在 Windows 10 上使用 Visual Studio 2017 和 Cmake。
最佳答案
我尝试在 Visual Studio 中使用工具集 v140_xp,但没有成功。最后,我得到了一台装有 Windows XP 的旧 PC,安装了 Visual Studio 10 并尝试编译。问题是最新版本 (3.4.1) 无法针对 Windows XP 进行编译。 AFAIK,为 XP 编译的最新版本的 OpenCV 是 3.2。可能可以使用 v140_xp 工具集在 Windows 10 上交叉编译它,但我没有尝试,因为我已经使用 Visual Studio 10 获得了旧的 XP。
关于visual-studio - 在 Windows 10 上针对 Windows XP 构建 OpenCV 3.4.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49690255/