linux下gcc怎么编译动态库以及怎么像自带库一样使用自制的库
Linux localhost 3.2.0-39-generic-pae #62-Ubuntu SMP Wed Feb 27 22:25:11 UTC 2013 i686 i686 i386 GNU/Linux
我想自己写了个函数,以后就想使用标准库中函数一样使用它(像使用read(),write()一样),
我自己试验了一个,写了一个add函数
文件add.c:
int add(int a, int b)
{
return a + b;
}
然后对add.c文件进行编译
gcc -fPIC -shared -o libadd.so add.c
测试程序test.c
#inclucde <stdio.h>
int main()
{
int a = add(1, 2);
return 0;
}然后编译
gcc -o test test.c -L. -ladd
运行./tesst 通过
如果我直接编译 gcc test.c ,出错
/tmp/ccdwGdzl.o: In function `main':
test.c:(.text+0x19): undefined reference to `add'
collect2: ld returned 1 exit status
我想问的是:
1.要怎么才能在以后的函数中直接调用add(a, b),编译时直接 gcc test.c,而不用指定什么链接的。
2.还有与add对应的头文件怎么写
相关推荐
boost库1.68版本Linux下编译的动态库和静态库
Linux系统下使用gcc 5.3编译器编译的boost库1.68版本的动态库和静态库,多线程参数编译,经测试可用
Linux 如何使用gcc生成静态库和动态库
Linux 如何使用gcc生成静态库和动态库,使用GCC编译生成静态库和动态库的方法
Linux下Gcc生成和使用静态库和动态库详解
Linux下Gcc生成和使用静态库和动态库详解Linux下Gcc生成和使用静态库和动态库详解
linux的ubuntu上如何编译C和C++代码写的动态库,以及调用执行
linux的ubuntu上如何编译C和C++代码写的动态库,以及调用执行
linux下gcc编译器的使用
linux下gcc编译器的使用 在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一 位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、Pascal、Modula-3和Ada等。 开放、自由和灵活是Linux的魅力所在,而这一点在GCC上的体现就是程序员通过它能够更好地控制整个编译过程。在使用GCC编译程序时,编译过程可以被细分为四个阶段: ◆ 预处理(Pre-Processing) ◆ 编译(Compiling) ◆ 汇编(Assembling) ◆ 链接(Linking)



