gcc

来源:互联网 发布:妇科专家在线网络咨询 编辑:程序博客网 时间:2024/06/08 12:22
















预编译生成hello1.c

可见代码非常多



对比一下发现少了头文件,其实是把include包含的头文件的内容(即stdio.h和stdlib.h的内容)全部加入进来了

具体看一下stdio.h的内容

很长

我们一般会干涉编译和链接而不是预编译,



一般会这样编译

编译就是编译 链接就是链接 这样一步一步地可以发现错误是怎样的


新加文件add.c

新加文件add.h

更改文件hello.c

系统头文件用<> 用户头文件用""这样才可以才windows 和linux下兼容


因为add函数并没有编译过所以会报错,需要把add.c编译一下











可见参数很多


linux不区分扩展但gcc区分扩展

c和c++是两种不同的独立语言,所以他们的库也不同。认为c有过程和c++有类,其他的一样,这种理解是不对的

gcc本身不进行链接而是调用ld这个命令来进行连接

不是编译时出错

看看libstdc++.so在哪里


发现没有找到add 找到了main




这时发现add



c++编译之后add变为addii c++会把编译完的目标代码函数的名字改变(重载的原理)

这就是的dll,so文件为什么用c做的原因 c++做完之后名字就变了,你无法调用

c++需要的库

c需要的库


编译c++最好使用g++


1 0
原创粉丝点击