• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

编译器工具的使用

9604a3b72d92b876 2020-12-04 浏览量:620

编译ELF文件的时候,有时候生成的是

 ELF 32-bit LSB executable​

有时候生成的是

ELF 32-bit LSB shared object

具体是什么区别造成的呢?​

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • executable的是可执行文件,另外一个是共享对象文件不能直接执行,需要通过其他方式加载或者编译链接才能使用。
    • 发布于 2020-12-05
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  •  ELF 32-bit LSB executable:是​可执行目标文件,如a.out,a.elf等;

    gcc多个文件生成目标文件.o:gcc xxx1.c xxx2.c xxx3.c xxx4.c main.c -o main 

    可以链接动态库:gcc xxx1.c xxx2.c xxx3.c xxx4.c main.c -L. -lxxx  ​-o main 

    ELF 32-bit LSB shared object​:可被共享的对象文件​,即所谓的动态库文件,如.so,

    gcc多个目标文件.o生成动态库.so:gcc -fPIC -shared xxx1.c xxx2.c xxx3.c -o libxxx.so

    生成可执行文件有时需要动态库或者静态库

    至于你说的问题,应该是编译和链接中选项的问题.

    • 发布于2020-12-05
    • 举报
    • 评论 0
    • 0
    • 0

  • ELF 32-bit LSB executable  小端方式 可执行文件

    ELF 32-bit LSB shared object 共享目标文件

    • 发布于2020-12-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 编译ELF文件的时候,有时候生成的是

     ELF 32-bit LSB executable    可执行文件

    有时候生成的是

    ELF 32-bit LSB shared object  共享目标文件


    • 发布于2020-12-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 一个是可执行文件

    一个是共享目标文件

    • 发布于2020-12-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 前面那个是可执行文件

    后面那个是共享链接库,你看它的缩写,就是so嘛

    • 发布于2020-12-07
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

编译器工具的使用