当前位置: 技术问答>linux和unix
linux c初级问题!
来源: 互联网 发布时间:2016-11-13
本文导语: 在linux c程序中加入头文件如#include 和编译时用-l链接有何区别(是动态链接和静态链接的区别吗)?如果要链接库函数可不可以只选其一(要么加入头文件要么不加头文件而是编译时在链接)。 | ...
在linux c程序中加入头文件如#include 和编译时用-l链接有何区别(是动态链接和静态链接的区别吗)?如果要链接库函数可不可以只选其一(要么加入头文件要么不加头文件而是编译时在链接)。
|
一个声明,一个时链接
|
1. 以系统自带的数学库math.h为例子:
1_1. 源代码test.c中,需要包含:
#include
1_2. 编译链接时,需要包含:
2_1. 动态链接
gcc -lm -o test test.c
2_2. 强制使用静态链接库
gcc -lm -o test test.c -static
1_1. 源代码test.c中,需要包含:
#include
1_2. 编译链接时,需要包含:
2_1. 动态链接
gcc -lm -o test test.c
2_2. 强制使用静态链接库
gcc -lm -o test test.c -static
|
预编译时展开的是头文件,那里只有函数声明,类似 extern void func(void); ,这是为了编译检查,
函数的实现在库文件里,需要连接时加入,否则连接时会提示 undefined symbol
|
#include 的作用只是把头文件包含到当前文件,在编译时,将里面的内容Copy到当前文件。如果你把函数的实现也放在.h文件中,那么程序中可以不用.c文件。但是一般的项目中都是不能这样做的
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。