#error : ERROR: Use of C runtime library internal header file. 这错误什么意思?

unhappyless_16 2007-02-05 07:35:09
#include<time.h>
#include<..\crt\src\ctime.h> //我用的是 VS2005 ,其他编译器可能要还相对路径
#include<iostream>
using namespace std;
int main()
{
time_t biggest=0x7fffffffffffffffI64; //15 个 f
cout<<_MAX__TIME64_T<<endl;

return 0;
}

在 ctime.h 里有

#define _MAX__TIME64_T 0x793406fffi64 /* number of seconds from
00:00:00, 01/01/1970 UTC to
23:59:59. 12/31/3000 UTC */

但包含后编译出错:
#error : ERROR: Use of C runtime library internal header file.

MSDN 上是这么解释的:

The error messages include the argument token-string and are currently not subject to macro expansion. These directives are most useful for detecting programmer inconsistencies and violation of constraints during preprocessing. The following example demonstrates error processing during preprocessing:

#if !defined(__cplusplus)
#error C++ compiler required.
#endif


When #error directives are encountered, compilation terminates.
...全文
3273 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
unhappyless_16 2007-02-10
  • 打赏
  • 举报
回复
taodm(taodm)

你把那行定义拷到自己的文件里就可以了。

===================================================================

这么做的话,好象问题没得到根本解决,若事先不知道_MAX__TIME64_T 的值,那又怎么办?

taodm 2007-02-09
  • 打赏
  • 举报
回复
你把那行定义拷到自己的文件里就可以了。
unhappyless_16 2007-02-09
  • 打赏
  • 举报
回复
To: Kenmark(fenix)

……不要去#include crt下面的东西,因为编译器会根据使用的原型库,自动编译实现文件,多次包含会出错


-------------------------------------------------------------------------------

不包含的话,那常量(_MAX__TIME64_T)就未定义了


==================================================================================

To: todototry()

预编译的选项里加上_CRTBLD
--------------------------------------------------
具体是在哪加?对编译器不熟,加这又是什么意思?
todototry 2007-02-08
  • 打赏
  • 举报
回复

预编译的选项里加上_CRTBLD
我啃 2007-02-08
  • 打赏
  • 举报
回复 1
VC的编译器INCLUDE:
include文件夹是默认include目录,提供函数原型定义以及一些宏,常数
crt文件夹是include里面的库的实现文件,编译时,我们只要#include "..\include\"下的文件就可以了,就是只要#include <iostream>就可以了,不要去#include crt下面的东西,因为编译器会根据使用的原型库,自动编译实现文件,多次包含会出错
user_csc 2007-02-06
  • 打赏
  • 举报
回复
#include<..\crt\src\ctime.h>



改成#include"..\\crt\\src\\ctime.h"

要么改成绝对路径哦~~~
#include"c:\\crt\\src\\ctime.h"
mathe 2007-02-06
  • 打赏
  • 举报
回复
就是说,这个头文件是C运行库编写时内部使用的,而调用这个库的用户不应该包含这个头文件。所以为了避免用户错误包含这个头文件,头文件里面自己做了检查,添加了#error语句,来阻止用户自己包含这个头文件,正如现在楼主做的。
逸学堂 2007-02-06
  • 打赏
  • 举报
回复
错误:使用C运行库内部文件
对于这个问题,如果仅仅是为了使用_MAX__TIME64_T的值

可以自己定义这个宏
#define _MAX__TIME64_T 0x100000000000i64 /* number of seconds from
00:00:00, 01/01/1970 UTC to
23:59:59. 12/31/2999 UTC */

至于为什么不能直接include引用,原因确实不知
todototry 2007-02-06
  • 打赏
  • 举报
回复
预编译的选项里加上_CRTBLD
unhappyless_16 2007-02-06
  • 打赏
  • 举报
回复
但 _MAX__TIME64_T 在这头文件中定义呀 ,不包含的话会有未定义错误
taodm 2007-02-06
  • 打赏
  • 举报
回复
根本就不要去包含这个头文件。
unhappyless_16 2007-02-06
  • 打赏
  • 举报
回复
Polarislee

CRT的内部头文件是不能够被应用程序直接包含的。

==============================================================================

是不是应用程序只能包含 include 文件夹里的东西?
unhappyless_16 2007-02-06
  • 打赏
  • 举报
回复
Wolf0403

#include<..\crt\src\ctime.h> //我用的是 VS2005 ,其他编译器可能要还相对路径

不应该去包含这个文件。

==============================================================================

为什么不能包含,ctime.h 和其他头文件没什么区别呀?
北极猩猩 2007-02-06
  • 打赏
  • 举报
回复
Kenmark(fenix) ( ) 信誉:100 Blog 2007-2-5 19:39:34 得分: 0
不用去INCLUDE crt下面的东西,编译器会自动寻找原型对应的实现代码

=================================================================

CRT的内部头文件是不能够被应用程序直接包含的。



Wolf0403 2007-02-06
  • 打赏
  • 举报
回复
#include<..\crt\src\ctime.h> //我用的是 VS2005 ,其他编译器可能要还相对路径

不应该去包含这个文件。
飞哥 2007-02-06
  • 打赏
  • 举报
回复
肯定头文件内有什么特殊的 宏判断

而没有定义那个宏
cutftp 2007-02-06
  • 打赏
  • 举报
回复
路径不对吧
unhappyless_16 2007-02-05
  • 打赏
  • 举报
回复
up
unhappyless_16 2007-02-05
  • 打赏
  • 举报
回复
up
unhappyless_16 2007-02-05
  • 打赏
  • 举报
回复
不加相对路径会找不到
加载更多回复(1)
内容概要:本文深入探讨了Kotlin语言在函数式编程和跨平台开发方面的特性和优势,结合详细的代码案例,展示了Kotlin的核心技巧和应用场景。文章首先介绍了高阶函数和Lambda表达式的使用,解释了它们如何简化集合操作和回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建和平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发和Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程和跨平台开发领域不断完善和发展。; 适合人群:对函数式编程和跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者和中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数和Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解和实践Kotlin的函数式编程特性和跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解和掌握。
内容概要:本文深入探讨了利用历史速度命令(HVC)增强仿射编队机动控制性能的方法。论文提出了HVC在仿射编队控制中的潜在价值,通过全面评估HVC对系统的影响,提出了易于测试的稳定性条件,并给出了延迟参数与跟踪误差关系的显式不等式。研究为两轮差动机器人(TWDRs)群提供了系统的协调编队机动控制方案,并通过9台TWDRs的仿真和实验验证了稳定性和综合性能改进。此外,文中还提供了详细的Python代码实现,涵盖仿射编队控制类、HVC增强、稳定性条件检查以及仿真实验。代码不仅实现了论文的核心思想,还扩展了邻居历史信息利用、动态拓扑优化和自适应控制等性能提升策略,更全面地反映了群体智能协作和性能优化思想。 适用人群:具备一定编程基础,对群体智能、机器人编队控制、时滞系统稳定性分析感兴趣的科研人员和工程师。 使用场景及目标:①理解HVC在仿射编队控制中的应用及其对系统性能的提升;②掌握仿射编队控制的具体实现方法,包括控制器设计、稳定性分析和仿真实验;③学习如何通过引入历史信息(如HVC)来优化群体智能系统的性能;④探索中性型时滞系统的稳定性条件及其在实际系统中的应用。 其他说明:此资源不仅提供了理论分析,还包括完整的Python代码实现,帮助读者从理论到实践全面掌握仿射编队控制技术。代码结构清晰,涵盖了从初始化配置、控制律设计到性能评估的各个环节,并提供了丰富的可视化工具,便于理解和分析系统性能。通过阅读和实践,读者可以深入了解HVC增强仿射编队控制的工作原理及其实际应用效果。

65,196

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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