zoukankan      html  css  js  c++  java
  • arm-linux-gcc 的使用

    1. 编译 C 文件,生成 elf 可执行文件 h1.c 源文件

    #include <stdio.h> void hellofirst(void)

    {

    printf("The first hello! ");

    }

    h2.c 源文件

    #include <stdio.h> void hellosecond(void)

    {

    printf("The second hello! ");

    }

    hello.c 源文件

    #include  <stdio.h> void hellosecond(void); void hellofirst(void);

    int main(int argc, char *argv[])

    {

    hellofirst(); hellosecond(); return(0);

    }

    编译以上 3 个文件,有如下几种方法:

    方法 1:

    [arm@localhost gcc]#arm­linux­gcc ­c h1.c [arm@localhost gcc]#arm­linux­gcc ­c h2.c

    [arm@localhost gcc]#arm­linux­gcc ­o hello hello.c h1.o h2.o

    方法 2:

    [arm@localhost gcc]#arm­linux­gcc ­c h1.c h2.c [arm@localhost gcc]#arm­linux­gcc ­o hello hello.c h1.o h2.o 方法 3:

    [arm@localhost gcc]#arm­linux­gcc ­c ­o h1.o h1.c

    [arm@localhost gcc]#arm­linux­gcc ­c ­o h1.o h1.c [arm@localhost gcc]#arm­linux­gcc ­o hello hello.c h1.o h2.o 方法 4:

    [arm@localhost gcc]#arm­linux­gcc ­o hello hello.c h1.c h2.c

    ­c: 只编译不连接。

    ­o: 编译且连接。

    2. 产生一个预处理文件 当要看一个宏在源文件中产生的结果时,比较合适。

    [arm@localhost gcc]#arm­linux­gcc ­E h1.i h1.c

    ­E: 产生一个预处理文件.

    3. 产生一个动态库

    动态库是在运行时需要的库。

    [arm@localhost gcc]#arm­linux­gcc ­c ­fpic h1.c h2.c [arm@localhost gcc]#arm­linux­gcc ­shared h1.o h2.o ­o hello.so [arm@localhost gcc]#arm­linux­gcc ­o hello hello.c hello.so

    把 hello.so 拷贝到目标板的/lib 目录下,把可执行文件拷贝目标板的/tmp 目录下,在目标板上运行 hello.

    #/tmp/hello

    或把 hello.so 和 hello 一起拷贝到/tmp 目标下,并设置 LD_LIBRARY_PATH 环境变量

    #export LD_LIBRARY_PATH =/tmp:$LD_LIBRARY_PATH

    #/tmp/hello

  • 相关阅读:
    CF698C LRU
    关于 Exists 的几种嵌套查询
    React中使用useState()导致的问题记录
    react报错:Legacy context API has been detected within a strict-mode tree.
    vue-cli3.0 + typescript 构建项目
    VUE3.0 + TS 项目实战 (2)基本写法
    vue图片剪辑
    实现直播间消息评论滚动,顶部消失效果
    js 实现数组元素交换位置
    JS树结构操作:查找、遍历、筛选、树结构和列表结构相互转换,删除对应数据
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11105582.html
Copyright © 2011-2022 走看看