MFC编译报错:error BK1506 : cannot open file '.\Debug\StdAfx.sbr': No such ile or dir

人窮志短 2014-04-17 07:32:47
--------------------Configuration: LoginWindow - Win32 Debug--------------------
Compiling resources...
Compiling...
StdAfx.cpp
c:\program files (x86)\microsoft visual c++\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
执行 cl.exe 时出错.
Creating browse info file...
BSCMAKE: error BK1506 : cannot open file '.\Debug\StdAfx.sbr': No such file or directory
执行 bscmake.exe 时出错.

自己写的基于MFC的聊天小软件,之前在自己电脑上运行没问题,这几天实习,拷贝到公司电脑运行就报错,编译不过,不知道什么原因,各位大大们帮帮忙看下
ps:百度说的删掉relese,重新编译都试过啦,不行···我也没手动添加<windows.h>,在自己电脑都能运行的
公司机子同时装有VS2012 VC6.0应该没冲突吧
...全文
1533 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
人窮志短 2014-04-21
  • 打赏
  • 举报
回复
引用 17 楼 aasmfox 的回复:
打开debug目录下的builderlog.htm什么错误写在这个文件里。。。
debug目录下 没找到你说的builderlog.html···
  • 打赏
  • 举报
回复
打开debug目录下的builderlog.htm什么错误写在这个文件里。。。
  • 打赏
  • 举报
回复
某些文件位置发生变化了吧。或者路径与原电脑上的不一致。就不能编绎了。
caewow 2014-04-18
  • 打赏
  • 举报
回复
你这个问题是这样产生的: 你需要使用 MFC 类库,就包含了 afx***.h (afx***.h中的***代替任意字符串) 头文件。然后,你又需要直接调用 win32 API ,所以又包含了 windows.h 头文件。最要命的是,你是先 include <windows.h> 然后 include <afx***.h> 的,结果就报告错误了。因为,afx***.h 文件中已包含了 windows.h ,而你又先手动包含了 windows.h ,所以就导致了错误。 解决办法: 在整个工程中搜索 #include <windows.h> ,找到之后,直接注释掉或者删除之,确保先 MFC 类库头文件和 windows.h 没有同时包含就行了。
路人乙2019 2014-04-18
  • 打赏
  • 举报
回复
从报错来看,一定是头件文重复包含,重复包含不一定是你手动添加了#include <windows.h>,有可能不同的头件文里包含的头件件中存在#include <windows.h>。你把StdAfx.cpp和stdafx.h代码全贴出来才能帮你分析。
人窮志短 2014-04-18
  • 打赏
  • 举报
回复
引用 11 楼 CodeMadman 的回复:
检查一下工程属性,编译、链接选项可能改变了,这样的情况很常见。
头疼啊···这样周末又得跑回学校做···我也不知道有哪些改变···
Yanortun 2014-04-18
  • 打赏
  • 举报
回复
检查一下工程属性,编译、链接选项可能改变了,这样的情况很常见。
oyljerry 2014-04-18
  • 打赏
  • 举报
回复
引用 9 楼 keweidong888 的回复:
[quote=引用 8 楼 worldy 的回复:] [quote=引用 楼主 keweidong888 的回复:] --------------------Configuration: LoginWindow - Win32 Debug-------------------- Compiling resources... Compiling... StdAfx.cpp c:\program files (x86)\microsoft visual c++\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h> 执行 cl.exe 时出错. Creating browse info file... BSCMAKE: error BK1506 : cannot open file '.\Debug\StdAfx.sbr': No such file or directory 执行 bscmake.exe 时出错. 自己写的基于MFC的聊天小软件,之前在自己电脑上运行没问题,这几天实习,拷贝到公司电脑运行就报错,编译不过,不知道什么原因,各位大大们帮帮忙看下 ps:百度说的删掉relese,重新编译都试过啦,不行···我也没手动添加<windows.h>,在自己电脑都能运行的 公司机子同时装有VS2012 VC6.0应该没冲突吧
清理项目,清理解决方案,然后重新编译[/quote] 试过啦,试过清除后再编译 还是报一样的错。。。[/quote] 如果还不行,那就重建工程,然后引入你的代码
人窮志短 2014-04-18
  • 打赏
  • 举报
回复
引用 8 楼 worldy 的回复:
[quote=引用 楼主 keweidong888 的回复:] --------------------Configuration: LoginWindow - Win32 Debug-------------------- Compiling resources... Compiling... StdAfx.cpp c:\program files (x86)\microsoft visual c++\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h> 执行 cl.exe 时出错. Creating browse info file... BSCMAKE: error BK1506 : cannot open file '.\Debug\StdAfx.sbr': No such file or directory 执行 bscmake.exe 时出错. 自己写的基于MFC的聊天小软件,之前在自己电脑上运行没问题,这几天实习,拷贝到公司电脑运行就报错,编译不过,不知道什么原因,各位大大们帮帮忙看下 ps:百度说的删掉relese,重新编译都试过啦,不行···我也没手动添加<windows.h>,在自己电脑都能运行的 公司机子同时装有VS2012 VC6.0应该没冲突吧
清理项目,清理解决方案,然后重新编译[/quote] 试过啦,试过清除后再编译 还是报一样的错。。。
worldy 2014-04-18
  • 打赏
  • 举报
回复
引用 楼主 keweidong888 的回复:
--------------------Configuration: LoginWindow - Win32 Debug-------------------- Compiling resources... Compiling... StdAfx.cpp c:\program files (x86)\microsoft visual c++\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h> 执行 cl.exe 时出错. Creating browse info file... BSCMAKE: error BK1506 : cannot open file '.\Debug\StdAfx.sbr': No such file or directory 执行 bscmake.exe 时出错. 自己写的基于MFC的聊天小软件,之前在自己电脑上运行没问题,这几天实习,拷贝到公司电脑运行就报错,编译不过,不知道什么原因,各位大大们帮帮忙看下 ps:百度说的删掉relese,重新编译都试过啦,不行···我也没手动添加<windows.h>,在自己电脑都能运行的 公司机子同时装有VS2012 VC6.0应该没冲突吧
清理项目,清理解决方案,然后重新编译
人窮志短 2014-04-18
  • 打赏
  • 举报
回复
引用 4 楼 rxguoblp 的回复:
直接删除 <afx***.h> 中包含的 <windows.h>可能会给后续其他应用带来麻烦,建议1楼的办法
一楼的方法没看懂,什么叫用同一个编译器版本编译?大神,能说说具体操作步骤吗?
人窮志短 2014-04-18
  • 打赏
  • 举报
回复
引用 2 楼 zzdmfk 的回复:
头文件重复包含,看哪有文件里面有#include <windows.h>,删除。
查了一下 搜索 'windows.h'... 找不到字符串 'windows.h'.
人窮志短 2014-04-18
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
用同一个编译器版本编译。 rebuild
没看懂 ,什么叫用同一个编译器版本编译???大神···
路人乙2019 2014-04-18
  • 打赏
  • 举报
回复
引用 15 楼 keweidong888 的回复:
[quote=引用 13 楼 zzdmfk 的回复:] 从报错来看,一定是头件文重复包含,重复包含不一定是你手动添加了#include <windows.h>,有可能不同的头件文里包含的头件件中存在#include <windows.h>。你把StdAfx.cpp和stdafx.h代码全贴出来才能帮你分析。
是不是那个#include <Winsock2.h>中包含了windows.h. 可是我在StdAfx中定义了两个全局变量···我需要这两个全局变量,,,如果注释掉Winsock2.h的话 没办法定义啦就····[/quote] 是的,试试把它放在最后面。。
rxguoblp 2014-04-18
  • 打赏
  • 举报
回复
直接删除 <afx***.h> 中包含的 <windows.h>可能会给后续其他应用带来麻烦,建议1楼的办法
人窮志短 2014-04-18
  • 打赏
  • 举报
回复
引用 13 楼 zzdmfk 的回复:
从报错来看,一定是头件文重复包含,重复包含不一定是你手动添加了#include <windows.h>,有可能不同的头件文里包含的头件件中存在#include <windows.h>。你把StdAfx.cpp和stdafx.h代码全贴出来才能帮你分析。
是不是那个#include <Winsock2.h>中包含了windows.h. 可是我在StdAfx中定义了两个全局变量···我需要这两个全局变量,,,如果注释掉Winsock2.h的话 没办法定义啦就····
人窮志短 2014-04-18
  • 打赏
  • 举报
回复
引用 13 楼 zzdmfk 的回复:
从报错来看,一定是头件文重复包含,重复包含不一定是你手动添加了#include <windows.h>,有可能不同的头件文里包含的头件件中存在#include <windows.h>。你把StdAfx.cpp和stdafx.h代码全贴出来才能帮你分析。
.cpp #include "stdafx.h" SOCKET sockClient; CString name; StdAfx.h #if !defined(AFX_STDAFX_H__D0C6BA91_675D_46ED_9572_EFAC8DF154EF__INCLUDED_) #define AFX_STDAFX_H__D0C6BA91_675D_46ED_9572_EFAC8DF154EF__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers #include <Winsock2.h> #include <afxwin.h> // MFC core and standard components #include <afxext.h> // MFC extensions #include <afxdisp.h> // MFC Automation classes #include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls #ifndef _AFX_NO_AFXCMN_SUPPORT #include <afxcmn.h> // MFC support for Windows Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT extern SOCKET sockClient; extern CString name; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_STDAFX_H__D0C6BA91_675D_46ED_9572_EFAC8DF154EF__INCLUDED_)
路人乙2019 2014-04-17
  • 打赏
  • 举报
回复
头文件重复包含,看哪有文件里面有#include <windows.h>,删除。
oyljerry 2014-04-17
  • 打赏
  • 举报
回复
用同一个编译器版本编译。 rebuild

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧