首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么在make文件中可以链接.cc文件而不能链接.c文件?

在make文件中可以链接.cc文件而不能链接.c文件的原因是因为.cc文件是C++源文件,而.c文件是C源文件。C++是C的超集,C++编译器可以编译C代码,但C编译器无法编译C++代码。

C++相对于C语言具有更多的特性和功能,例如类、对象、继承、多态等。因此,C++编译器在编译C++源文件时会对代码进行更复杂的处理和优化。

在链接阶段,编译器会将源文件编译成目标文件,然后链接器将这些目标文件合并成最终的可执行文件。链接器需要根据目标文件中的符号表信息来解析函数和变量的引用关系。C++编译器会对C++源文件进行名称修饰(name mangling),以支持函数重载和命名空间等特性。而C编译器不会进行名称修饰。

因此,在make文件中可以链接.cc文件而不能链接.c文件,是因为链接器需要根据编译器生成的目标文件中的符号表信息来解析函数和变量的引用关系,而C++编译器会对C++源文件进行更复杂的处理和优化,包括名称修饰,而C编译器不会进行这些处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

13分17秒

002-JDK动态代理-代理的特点

15分4秒

004-JDK动态代理-静态代理接口和目标类创建

9分38秒

006-JDK动态代理-静态优缺点

10分50秒

008-JDK动态代理-复习动态代理

15分57秒

010-JDK动态代理-回顾Method

13分13秒

012-JDK动态代理-反射包Proxy类

17分3秒

014-JDK动态代理-jdk动态代理执行流程

6分26秒

016-JDK动态代理-增强功能例子

10分20秒

001-JDK动态代理-日常生活中代理例子

11分39秒

003-JDK动态代理-静态代理实现步骤

8分35秒

005-JDK动态代理-静态代理中创建代理类

8分7秒

007-JDK动态代理-动态代理概念

领券