CMake+Ninja构建Qt项目报undefined reference to __imp__的排查与解决

发布时间:2026/9/10 8:36:16
CMake+Ninja构建Qt项目报undefined reference to __imp__的排查与解决 CMake 配合 Ninja 构建 Qt 项目时报undefined reference to __imp__这类链接错误我几乎每一次都是在 Windows 上遇到的。第一次见它的时候我还在用 Qt 5.15 MinGW 8 工具链满屏都是undefined reference to __imp___ZN7QWidget...我还以为是编译器坏了把 Qt 卸载重装了两遍都没解决最后发现是 CMakeLists 里少声明了一个模块当时真想找个地缝钻进去。这个错误对新手极度不友好因为它不是直接告诉你“缺了哪个库”而是给你甩一长串 C 修饰符号光看报错根本不知道是哪一步出了问题。这篇文章就把我从踩坑过程中整理出来的排查方法和解决方案写全看完你应该能自己定位问题。1.imp前缀背后Windows 导入符号与链接器在找什么1.1 为什么你会看到 _imp而不是普通函数名在 Windows 平台上动态库DLL的导入机制和 Linux 下的.so完全不同。Linux 下链接