c语言有时候为什么在编译显示没错误,链接却显示有错误?

如题所述

估计是重定义一类的问题吧。。。当然也有可能编译器与系统不兼容。
具体的话得看程序头表符号重定位这些东西是不是出了问题。。
最直接的方法是阅读代码。。看代码是不是哪里出了问题,比如重定义,比如多个强符号。。
这里只有猜。。需要源代码。。以及说明用来编译链接工具。追问

是一道改错题。抱歉,没原题。

如果格式有问题,编译就应该显示有错误才对呀。。

追答

恩。编译只是检查语法是否有错。或者你说的格式,不检查数据的重定义的。(术语是符号的重定位)
重定义的问题,或者应该说数据,或者函数使用时的重定位的问题是在链接时进行检查的。。
所以才估计是函数重定义,或者变量重定义之类的错误。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-29
vc?去百度一下,如果是vc的话是和系统有关系
第2个回答  2015-11-29
你之前是不是打开过编译好的exe文件忘关了?

c语言编译没有错误,连接有错误是怎么回事?
1) 函数中引用了不存在的函数。2) 编译环境有问题,导致ld出错。

c语言编译没有错误,连接有错误是怎么回事?程序本身没错
1、链接错误也不一定是系统的问题,也有可能是程序的问题。如果编译有错的话是不会有链接的,链接要有obj目标文件,编译不通过就没有目标文件。2、连接错误及原因:编译器错误 C2001 错误消息 常数中有换行符 字符串常数不能继续到第二行,除非进行下列操作: •用反斜杠结束第一行。 •用一个双引号结束第一...

c语言程序,编译没有问题组建报错,求大神指点
很可能是因为你的程序已经生成了目标文件 *.exe,并且在运行,此时如果你再链接就会报这个错误。你可以打开【任务管理器】-》【进程】,查看是否进程已经在运行,如果有,可以手动结束之

为什么c语言编译没问题,连接时出现unresolved external symbol错误
出这个错,是有函数只有声明,没有实现。所以编译通过链接失败。

c语言运行出错什么原因
编译没有错是因为你写的mian函数的语句符合C规范,而链接有错误是因为C必须有一个入口函数或叫主函数main(),而你这里却没有。 White_MouseYBZ | 发布于2013-07-23 举报| 评论 0 0 如果是新手,不建议这么写,尤其以后和几个人合作,要知道猪一样的队友之可怕!for循环结构中,建议代码结构清晰,讲sum放在for...

c语言为什么我编译没错,运行的时候就有错误了 运行不了啊 没有豆了...
你的main拼写错了

C语言为什么编程的时候编译没错,组建错误。
你说的组建错误多半是link出错吧,这个很可能是你安装的路径不是默认那个路径,于是,可能需要你自己修改一下编译器设置,你可以到网上搜一下到底是在什么地方设置。我记不清楚具体位置了,就是设置链接器的路径。在对vc进行设置的那个菜单里面找一找,里面就有各种路径设置,包括头文件路径啊,可执行...

C语言里程序编译无误但运行会弹出程序已停止运行是为什么
编译器错误 部分编译器由于所使用的标准不同(例如在一台机器上使用的可能是C99标准,而另一台机器上使用的是C11标准),或是因为编译器链接库的损坏,在少数情况下也可能导致程序出现不限于崩溃退出的异常错误,通常解决方法是到编译器官方网站下载最新版的IDE安装。

为什么编译运行没问题,输出却报错?
出现这个报错的原因是:代码输入过程中出现全角输入,将代码中括号、分号等用半角字符替换即可。根据题目给出的提示,请检查一下第51行代码,将51行代码中出现的全角符号替换成半角字符,或者输了重新输入就行。

C 链接错误是什么意思?
C链接错误通常是由于程序中某些文件缺失或无法找到的情况下产生的。在C语言中,链接器的主要功能就是将各个源文件链接在一起,形成可执行文件。当程序中缺失了某些源文件或者库文件时,就很容易出现链接错误。另外,编译器的参数设置不当也会导致链接错误的发生。在编译时,需要输入正确的参数和路径,并且...

相似回答