导航:首页 > 源码编译 > 为什么编译链接不会报错

为什么编译链接不会报错

发布时间:2025-01-29 03:06:49

1. 在使用VC时为什么编译时没有错误,连接时有错误,不能打开文件

我们通常所说的编译其实包含两个部分:编译和链接。
编译是指把程序源文件编译成目标文件,即vc下的.o文件。
链接是指把目标文件生成可执行文件。
链接的时候,如果某个函数只有声明,但没有实现,或者依赖第三方库,但只提供了头文件,没有提供库文件,或者库文件的版本不对,都会导致链接错误,而这些错误,在编译阶段通常是不会报错的。所以,你可以针对上面提到的几点一一排除一下:
1,程序中所用到的自己写的函数是否都已经实现;
2,如果使用了第三方库,确认是否已经有了第三方库,是否在工程设置中包含了库文件,并且配置了库文件搜索路径,保证编译器能找到所需要的库文件;
3,如果使用了第三方库,确认所使用的库文件版本是对的。
如果上面这些都做好,基本上就不会有问题了。

2. c语言中在两个文件中命名了相同的变量名,在内存中会不会读取错误

如果在不同的c文件中定义了同名的全局变量,则它们会占用相同的内存空间,而且编译链接时不会报错!
这可以参考全局变量的内存初始化顺序,对于局部变量而言,内存分配的顺序和代码的顺序是一样好庆的。全局变量就不一样了;一般的编译器,
(1) 对于初始化的全局变量,碰到之后就知道这是一个定义,会马上分配空间,
(2) 对于没有初始化的全局变量,因为不知道是定义还是声明,所以要在扫描完所有代码之后才能决定,这个时候编译器会读符号表,然后看哪些变量没有分配空间.
(3)不同源文件间全局变量的初始化顺序:对于全局变量而言,除了在同一个文件定义的全局对象的初始化 是按照定义次序来进行的之外,其他全局或友戚握静态变量之间的初仔源始化次序没有任何保障的。

3. vc6写书上的程序,编译不报错,无法执行。错误为执行Link.exe出错

既然题主提出了这个问题,说明题主的编程语言理论严重缺乏。
在C/C++中,我们一般认为有两个阶段(其实有很多): 编译和链接。而题主所提供的图表示的是一种链接错误,而不是编译错误。
编译错误: 存在语法错误,缺少某个头文件等很明显的错误,如果编译错误都不能解决,就说明写代码那个人水平极低。编译主要是针对某个具体模块的。
链接错误:链接是主要针对多个模块而言的。这个理论太多。我就举个例子来说明:地图上的长城与实际的长城,我们平时说去长城玩儿,这个长城指的是“虚”的,可以认为是地图上的长城;但是真正的去长城玩儿的时候,你总不能再地图上玩儿吧,肯定是“实际上的”长城。
下面回归正题:
你这个代码很显然是编译通过的,那么链接没通过说明你的模块之间存在问题。你的代码中调用了AVC,AverageValue这几个函数。但是你能指出这几个函数具体是怎么做的么?具体定义又在哪儿啊?用长城的例子来说明:你只是地图上的长城,但是玩儿的时候必须到实际的长城去玩儿啊。

具体解决办法:
自己写出这几个函数的定义代码,然后将这几个函数符号,放到调用地方的前面。

4. Java什么情况下强转型 编译不报错,运行会报错

向下强制转型——把一个父类(或祖先类)引用强制转换成一个子类(或孙类)引用,是不会发生编译错误的。

但如果这个父类(或祖先类)引用实际引用(指向)的对象,不是一个子类(或孙类)对象,运行时就会抛出异常。

举例来说,如果鸟类和狗类都是动物类的子类。

如果有一个动物类的引用a引用了一个鸟类对象,则此时将a强制转换成狗类引用,就不会报编译错误,但运行时会抛出类型转换异常。

因为a这个装动物的笼子,实际上关的是一只鸟,而需要的动物是一只狗。

5. c语言编程错误,编译不报错 连接就出错了

报错是因为以下两个函数是未定义的。

他们不是C语带知言的库函数,而在提供的代码中又找不到它们的定义,所以连接的时候就会报错。

double power(double x,int n);
double fact(int n);


需要在代码里面蠢森消实现这两个函数,也就是写出这两个函数的功能是如何通过代码来实现的


在原来的代码后面加上以下代码就可以了:

doublepower(doublex,intn)
{doubleans=1;
while(n--)
春扮ans*=x;
rerutnans;
}
doublefact(intn)
{doubleans=1;
if(n>0)
do{
ans*=n;
while(n-->0);
returnans;
}
阅读全文

与为什么编译链接不会报错相关的资料

热点内容
pdf格式转化jpg格式的文件 浏览:298
新浪收发件服务器ip地址 浏览:873
endnotepdf打开pdf 浏览:291
直面算法与霸权 浏览:809
服务器和工控电脑维保都做什么 浏览:115
文件包加密管理 浏览:396
录加密视频 浏览:13
程序员的上班生活 浏览:43
百度网页下载的软件在哪个文件夹 浏览:551
算法设计指南pdf 浏览:11
苹果手机安卓系统会显示什么 浏览:267
命令方块英文名 浏览:875
存在即合理算法 浏览:1002
怎么查看编译器是c11还是 浏览:769
华三服务器质保期如何查 浏览:842
微信ssl加密 浏览:592
androidui入门书籍 浏览:741
单片机二进制文件加密 浏览:118
怎样给文件夹加上级目录 浏览:163
怎么给app加密苹果手机 浏览:191