当前位置:首页 » 编程软件 » 预编译头文件来自编译器的早期版本或

预编译头文件来自编译器的早期版本或

发布时间: 2023-03-15 01:17:23

A. 如何使用delphi 编译rtklib

1. 首先在vs2013中新建一个win32的dll项目

2. 在项目上添加一个文件夹[rtklibsrc]然后在文件夹上【添加现有项目】把rtklib的源文件加入工程。在rtklibsrc下建立rcv把rcv下面的文件也添加到工程

3. 现在开始编译工程,你会发现很多错误。下面我们一步步来解决错误。

1> Q: error C1853:
“Debug\rtklibHelper.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
x:\xxxx\rtklibhelper\rtklibsrc\tle.c 1 1 rtklibHelper
A: 不使用预编译头

2> Q: 错误 1 error C4996: 'strncpy': This function or
variable may be unsafe. Consider using strncpy_s instead. To disable
deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for
details. x:\xxxx\rtklibhelper\rtklibhelper\rtklibsrc\tle.c

A: 其实提示上面已经告诉你方法了,需要你加入预编译指令来取消这个错误[_CRT_SECURE_NO_WARNINGS]

3> Q: error C4996: 'gethostbyname': Use getaddrinfo() or
GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to
disable deprecated API warnings
x:\xxxx\rtklibhelper\rtklibsrc\stream.c

A: 这个错误和上面类似,加入[_WINSOCK_DEPRECATED_NO_WARNINGS ]

4> Q:接下来是一个这样的错误 error C2466: 不能分配常量大小为 0 的数组 x:\xxxx\rtklibhelper\rtklibsrc\rinex.c

A:这个错误我们来看一下, 在[MAXPRNGLO]上面按F12,看他的定义处

这个常量为0,那么不能进行编译,我们想上面一样在预编译器里面加入 ENAGLO

5> Q: error C1083: 无法打开包括文件: “rtklib.h”: No such file or
directory x:\xxxx\rtklibhelper\rtklibsrc\rcv\ublox.c 41 1
rtklibHelper

A: 添加附加目录设置[.\rtklibsrc] , 注意是C/C++的常规下面,不是链接器的常规页面。

6> Q: error LNK2005: _input_oem3 已经在 novatel.obj 中定义 x:\xxxx\rtklibhelper\novatel_old.obj rtklibHelper

A: 这个错误是添加文件的时候添加重复了novatel_old.c不应该添加了,删除即可

7>: Q: error LNK2019: 无法解析的外部符号 _settspan,该符号在函数 _postpos 中被引用 x:\xxxx\rtklibhelper\postpos.obj rtklibHelper

error LNK2019: 无法解析的外部符号 __imp__timeGetTime@0,该符号在函数
_tickget 中被引用 x:\xxxx\rtklibhelper\rtkcmn.obj rtklibHelper

error LNK2019: 无法解析的外部符号 __imp__accept@12,该符号在函数
_accept_nb 中被引用 x:\xxxx\rtklibhelper\stream.obj rtklibHelper

A: 添加附加库[连接器->输入->附加依赖库]添加winmm.lib, ws2_32.lib

8>:Q: error LNK2019: 无法解析的外部符号 _showmsg,该符号在函数 _convrnx 中被引用 x:\xxxx\rtklibhelper\convrnx.obj rtklibHelper

A: 一查showmsg这个函数如果在DLL中需要自己定义,rtklib里面已经做好了处理需要在预处理器里面加入[DLL]即可。

预处理器里面我们添加了

_CRT_SECURE_NO_WARNINGS
_WINSOCK_DEPRECATED_NO_WARNINGS
ENAGLO
DLL

最后rtklibHelper编译成功了,可以开始编写具体的功能函数了。

B. 为什么用visual studio2010执行C语言后老是出现项目已过期的情况应如何解决

你是按Ctrl+F5或F5执行的吧?这个命令是运行那个编译出的EXE程序。你的源代码修改了,要重新编译一下EXE再来执行,否则就会有过期的提示,点“是”重新生成即可(只是一个善意的提示,告诉你要重新编译),或者下次不再提示也可以。

注:编译是F7,我习惯先F7编译完Ctrl+F5执行,就不会有提示的。

图片:先编译修改过的代码再来执行EXE。

很高兴为你解答^_^

C. “预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)”

把min.c重命名为min.h
c是源文件
h是头文件

D. 错误 1 error C1853: “Debug\test.c.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C

告警信息里有说明,可能是你包含的头文件是不当前所使用编译器里的头文件。
检查一下头文件是不是当前所使用的编译器里的文件。

E. 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反) 怎么调试

你是在vs中使用c文件。首先要调用c函数的地方,加上extern "c"{ #include "xx.h"},把c所用的头文件放这里面;
然后在vs工程里面设置不使用预编译头
project->configuration property->c/c++->precompiled headers->选not using precompiled heads

F. 错误 1 fatal error C1853: "Debug\sift.pch"预编译头文件来自编译器的早期版本

该错误是因为当项目中混合了 .cpp 和 .c 文件时,编译器会对它们采取不同的编译方式(主要是因为对函数声明的处理方式不同),因而不能共用一个预编译头文件。在 VC++ 中,默认的预编译头文件是针对 C++ 的 (stdafx.h 和 stdafx.cpp),当然也可以创建针对 C 的预编译头。

方法:将少数的不同类文件设为不使用预编译头是比较平衡的做法,方法是:对于 VC++6.0,在 FileView 里对要取消预编译头的 .c (或 .cpp) 文件点右键,选择 settings,在弹出的对话框右边选择 category 为 precompiled headers,再设置选项为 not using ...;(对于 VS2005,则在 solution explorer 中对相应文件点右键选择 properties,在 precompiled headers 项下设置 not using... 即可。如果需要设置多个文件,则可以按住 Ctrl 键再同时选中这些文件并设置)PS:解释如下点击项目 点击属性 然后选择C/C++ 预编译头 创建使用头文件 不使用预编译头文件(解决方案资源管理器-右击需要排除的c或cpp文件]-弹出属性菜单-展开C/C++-预编译头-创建/使用预编译头-选择不适用预编译头)

G. 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)

C++使用中基本上c里面的头文件都可以兼容,但反过来则不行。如果是说这个C++的头文件你一定要使用在C中它,那就只能你自行编译一个了。

还有你说的不是很清楚“”冒号中的句子是你想要问的问题还是你想做个MFC课程设计?你又说你用的是VS2005,加上mfc,那就只能是学VC了,基本上来说你如果只是想做一个课程设计而不是成为一个程序设计高手的话,c++和c都对你的VC课程设计影响不大。

热点内容
c编译器和解释器的区别 发布:2025-07-20 14:27:32 浏览:333
语句编译一个计算机 发布:2025-07-20 14:27:24 浏览:926
惠支付普通密码被锁定什么原因 发布:2025-07-20 14:27:21 浏览:526
荣誉积分服务器怎么搭建 发布:2025-07-20 14:15:18 浏览:231
我的C语言 发布:2025-07-20 14:14:21 浏览:280
传奇脚本死循环 发布:2025-07-20 14:11:53 浏览:414
sql数据库项目 发布:2025-07-20 14:06:11 浏览:167
linux查看selinux状态 发布:2025-07-20 13:36:35 浏览:915
福利资源解压密码 发布:2025-07-20 13:34:10 浏览:270
我的世界怎么在手机搞服务器 发布:2025-07-20 13:26:07 浏览:906