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