fatal error C1083: 无法打开包括文件:"stdbool.h": No such file or directory

最近在自学C语言,输入书上的实例程序时提示这个错误,编译器使用的是VS2008.在百度里搜了一圈没有遇见这个问题的,可能是太简单了,但真的是难住我了。<stdbool.h... 最近在自学C语言,输入书上的实例程序时提示这个错误,编译器使用的是VS2008.

在百度里搜了一圈没有遇见这个问题的,可能是太简单了,但真的是难住我了。<stdbool.h>不是一个标准的头文件吗,难道VS2008中还需要自己下载一个库文件装进去吗?
展开
 我来答
武风002
2015-09-14 · TA获得超过858个赞
知道小有建树答主
回答量:1016
采纳率:100%
帮助的人:298万
展开全部
如何解决 “fatal error C1083: ”无法打开包括文件
最开始重新导入项目时,遇到过 "fatal error C1083"这个错误,当时经同事指点,改了加载头文件的附加路径,问题很容易就解决。今天将整个工程改的编译方式改为Release方式,再次遇到"fatal error C1083",决心将具体的解决方法以图文的方式记录下来,一方面加深自己的印象,另一方面,也方便遇到类似问题的同学找到快速解决方案。
步骤1:定位报“fatal error C1083: ”错误的文件,找到它所在的目录。 步骤2:添加该项目的附加路径 。如图所示: 1)右键查看该项目的属性
2)点击配置属性——〉 C/C++ ——〉 常规 ——〉 附加包含目录——〉将报错文件所在目录添加进去
3) 将项目的本地路径替换为工程相对路径 工程根目录为:$(ProjectDir) 其子目录inc为:$(ProjectDir)inc
其子目录inc为:$(ProjectDir)inc

具体来源http://wenku.baidu.com/link?url=yB4fe6Fv69GvfYgOscj1O5QazMcg8p9xC5M8HCG1-s4FbD47iEc8uEWxyQeLaLtkJoWq1sXULuxwrK_Nx9sE4G9SFrlDOZYHTikXkA1aXBS
王同学2333
2018-04-08 · TA获得超过3755个赞
知道小有建树答主
回答量:59
采纳率:100%
帮助的人:8089
展开全部

不需要,直接调用即可。调用方法如下:

1.在matlab中生成dll


在m文件中实现如下功能:
获得N个魔方矩阵的秩。m文件的内容如下:
function r = mrank(n)
r = zeros(n,1);
for k=1:n
r(k) = rank(magic(k));
end


将上述内容保存为:mrank.m


在matlab的command 窗口键入:
>> mcc -B csharedlib:mrank mrank.m %该命令将在后面做说明


在matlab7.0中执行上述命令后生成下面几个文件:
mrank.exp    mrank.exports   mrank.h   mrank.lib  mrank.c     mrank.dll  


在vs2008中使用m文件的函数功能。

首先配置vs2008的环境

1.工具——> 选项——>项目和解决方案——>VC++目录
(1) 选择“可执行文件”下拉框,添加:C:\Program Files\MATLAB\R2010b\bin\win32(注意:当前的Mathlab安装在C:\Program Files下面)
(2)选择“包含文件”下拉框,添加:C:\Program Files\MATLAB\R2010b\extern\include
(3)选择“引用文件”下拉框,添加:C:\Program Files\MATLAB\R2010b\extern\lib
(4)选择“库文件”下拉框,添加:C:\Program Files\MATLAB\R2010b\extern\lib\win32\microsoft

上述环境只需要配置一次


对于每一个工程,做下面的设置
项目——>属性——>连接器——>输入
选择:附加依赖项:添加:
libmex.lib
libmx.lib
libmat.lib
mclmcrrt.lib


将mrank.h  mrank.lib  mrank.dll拷贝到当前目录下
cpp文件中中的内容如下:
#include "stdafx.h"
#include<stdlib.h>
#include"matrix.h"
#include"mrank.h"
#include "mclmcrrt.h"
#pragma comment(lib,"mrank.lib")


int main()
{
mxArray *N(NULL),*R(NULL);
int n =12;
mrankInitialize();//初始化动态链接库
N = mxCreateDoubleScalar(n);//用n来初始化生成的数组,其实标量就是一个1*1的数组
mlfMrank(1,&R,N);//执行m文件的主要功能


size_t num = mxGetM(R);//R的行的个数
double *res = new double[num];
memset(res,0,sizeof(double)*num);
memcpy(res,mxGetPr(R),sizeof(double)*num);
for(int i=0;i<num;++i)
printf("%f\n",res[i]);
delete[] res;
mxDestroyArray(N);
mxDestroyArray(R);


mrankTerminate();//终止动态数据连接
return 0;
}


上述cpp文件使用了Matlab编译m文件生成的dll,在cpp中通过mxArray这个数据结构来和dll中的方法进行信息交换。
这样就在cpp中调用了matlab中的m文件实现的方法。

Microsoft Visual Studio 2008是面向Windows Vista、Office 2007、Web 2.0的下一代开发工具,代号"Orcas",是对Visual Studio 2005一次及时、全面的升级。

VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用程序。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。

同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了AJAX 1.0,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柳鲲鹏
2021-08-15 · TA获得超过513个赞
知道答主
回答量:190
采纳率:55%
帮助的人:7万
展开全部

事情简单,需要这个文件,又没有这个文件。怎么办?自己写一个,放在stdlib.h同目录下即可。具体内容是:


#ifndef __STDBOOL_H__

#define __STDBOOL_H__


#define bool int

#define true 1

#define false 0

 

#else /* __STDBOOL_H__ */

 

具体参考这个博文:

网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yingzi__2012
2015-01-03 · TA获得超过268个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:67.1万
展开全部
点工具->选项->项目和解决方案->VC++目录
然后在包含目录下添加VS安装路径和SDK安装路径

在vs2008下测试有效
望采纳,谢谢!!!
追问

谢谢指教,是不是这个界面。但是我添加路径两个路径(就是倒数第二、第三个)后依然报错,是不是我添加的方法不对?


其实我还不知道SDK是干啥的呢,实在是不好意思了。

追答
一定要注意符号的前后呼应,不然不是一条完整的语句,会报错的。
将windows.h放在源文件相同的目录下,或者#include包含文件时,并写上完整的路径;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式