zoukankan      html  css  js  c++  java
  • Linux下制作静(动)态库

    关键命令:

    动态库制作命令

    gcc xxx.c -fPIC -shared -o libxxx.so

    静态库制作命令

    gcc -c xxx.c

    ar crv libxxx.a xxx.o

    例:

    //hello.h
    #ifndef HELLO_H
    #define HELLO_H
    void hello(const char * name);
    #endif
    
    
    
    //hello.c
    #include<stdio.h>
    void hello(const char * name)
    {
      printf("hello %s!
    ",name);
    }
    
    //test.c
    #include<stdio.h>
    #include"hello.h"
    int mian()
    {
     hello("csk");
     return 0;
    }

    一、将hello.c 编译成静态库

    gcc -c hello.c //生成hello.o文件

    ar -rcv libhello.a hello.o //生成静态库

    gcc -o hello test.c -L. -lhello //链接静态库将test.c文件编译生成可执行文件hello

    ./hello //执行

    二、将hello.c编译生成动态库

    gcc hello.c -fPIC -shared -o libhello.so //生成动态库

    gcc -o hello test.c -L. -lhello //链接动态库将test.c文件编译生成可执行文件hello

    export LD_LIBRARY_PATH=$(pwd) 或者ldconfig "目录名" (当前文件所在的目录)

    ./hello //执行

    使用Makefile 编译动态库

    # 1、准备工作,编译方式、目标文件名、依赖库路径的定义。
    CC = gcc
    CFLAGS  := -Wall -O3 -std=c++0x 
    
    OBJS = hello.o #.o文件与.cpp文件同名
    LIB = libhello.so # 目标文件名 
    # 2. 生成.o文件 
    %.o : %.cpp
        $(CC) $(CFLAGS) -fpic -c $< -o $@ 
    
    # 3. 生成动态库文件
    $(LIB) : $(OBJS)
        rm -f $@
        $(CC) -shared -o $@ $(OBJS)
        rm -f $(OBJS)
    
    # 4. 删除中间过程生成的文件 
    clean:
        rm -f $(OBJS) $(LIB)

    使用Makefile 编译静态库

    # 1、准备工作,编译方式、目标文件名、依赖库路径的定义。
    CC = gcc
    CFLAGS  := -Wall -O2 -std=c++0x 
    
     
    
    OBJS = hello.o #.o文件与.cpp文件同名
    LIB = libhello.a # 目标文件名 
    
    
    # 2. 生成.o文件 
    %.o : %.cpp
        $(CC) $(CFLAGS) -c $< -o $@ 
    
    # 3. 生成静态库文件
    $(LIB) : $(OBJS)
        rm -f $@
        ar cr $@ $(OBJS)
        rm -f $(OBJS)
    
    # 4. 删除中间过程生成的文件 
    clean:
        rm -f $(OBJS)$(LIB)
    海阔凭鱼跃,天高任鸟飞。
  • 相关阅读:
    kali linux命令
    kali查看beef密码
    kali的ifconfig: command not found 解决办法
    git创建分支及日常使用
    fatal: Authentication failed for 问题解决
    php开启xdebug扩展及xdebug通信原理
    yii项目开发配置
    windows上把git生成的ssh key
    yii在Windows下安装(通过composer方式)
    rar在linux下安装更新
  • 原文地址:https://www.cnblogs.com/chenshikun/p/6093712.html
Copyright © 2011-2022 走看看