Win7升级Win10后Dev-C++编译报错:找不到指定kernel32.dll路径
嘿,我完全懂你现在的困扰——升级Win10后,Dev-C编译时非要揪着Win7那个特定版本的kernel32.dll不放,改了makefile还白搭,因为每次编译都会自动重建这个文件。别担心,问题出在Dev-C的项目配置里,而不是临时生成的makefile,咱们一步步来解决:
问题根源
你看到的makefile中LIBS项里那串超长的kernel32.dll路径,是Dev-C从项目的链接器配置里读取的——当初在Win7下创建项目时,配置里硬编码了那个旧版本的系统库路径,升级系统后这个路径自然就不存在了。而每次编译时Dev-C会根据项目配置重新生成makefile,所以直接修改makefile根本没用。
具体修改步骤
打开项目配置界面
打开你的InstallShield_Bootstrap项目,点击顶部菜单栏的Project->Project Options(或者右键项目名称,选择Options)。定位链接器配置项
在弹出的配置窗口中,切换到Linker标签页,找到Additional Libraries或者Linker Command Line的输入区域——你会看到那串熟悉的../../../../../../../Windows/winsxs/wow64_microsoft-windows-kernel32_.../kernel32.dll路径。移除硬编码的路径
把这整个kernel32.dll的路径字符串删掉就行!不需要手动替换成新路径,因为MinGW的链接器会自动找到当前系统中正确的kernel32.dll版本——kernel32是Windows的核心系统库,链接器默认就会处理它,根本不需要手动指定路径。保存配置并重新编译
点击OK保存配置,然后重新编译你的项目,这个找不到文件的错误应该就消失了。
补充说明
你之前的LIBS配置,移除多余的kernel32.dll路径后才是正确的写法:
LIBS = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib32" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib32" -static-libgcc -mwindows -m32
链接器会自动负责找到合适的系统库文件,不需要额外指定核心库的具体路径。
内容的提问来源于stack exchange,提问作者Lou

