• 嵌入式开发入门心得记录


    1.首先要做好方案架构的设计,如算法,功能,工具,等进行分类

    2.如何编译动态库和静态库,库的作用是什么?

      静态库在编译时直接编辑进主函数中,文件较大,动态库是在执行时动态加载库文件,共享动态库可以提供给他人使用,也就是开放自己的API函数

      如何编译动态库呢?

      假设已经有了文件test1.c test2.c main.c

     1 gcc test1.c test2.c -shared -fPIC -o libtest.so
     2 
     3 使用动态库
     4 
     5 gcc main.c -L. -ltest -o a.out
     6 
     7 (
     8 
     9 -L : 表示需要库的路径
    10 
    11 -l:表示需要库的名称,如libtest.so,名称则为test
    12 
    13 )
    14 
    15 (ps:执行a.out时有可能提示找不到libtest.so文件,这时需要把库文件放入到/lib等目录下,或者添加环境变量LD_LIBRARY_PATH,包含有库文件的路径即可)

      如何编译静态库?

     1 gcc -c test1.c test2.c
     2 
     3 ar -r libtest.a test1.o test2.o
     4 
     5 使用静态库
     6 
     7 gcc main.c -static -L. -ltest -o a.out
     8 
     9 (
    10 
    11 -static:可强制编译时使用静态库,如果不使用这个参数,而静态库与动态库同名的话,会优先使用动态库
    12 
    13 )

    3.如何是封装API?

      做c开发时,API即是通过.h 和.c实现函数,供其他用户或函数进行调用,可以封装成动态库或者静态库,也可以和主函数一起直接编译。

    4.熟悉观察者模式

  • 相关阅读:
    netty内存泄漏
    Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
    java 容器结构
    c3p0 一个数据库链接的例子
    eclipse java MemoryAnalyzer 查询内存泄漏 环境配置
    Java中数据库连接的一些方法资料汇总
    java io流
    MySQL的几个概念:主键,外键,索引,唯一索引
    mysql 一些常用指令
    mysql only_full_group_by问题
  • 原文地址:https://www.cnblogs.com/edan/p/9838686.html
Copyright © 2020-2023  润新知