如果您 确实经历过

与上述标题相关的事情,您是否愿意对此发表评论?我试图使共享对象在Ubuntu上同时被Clang和GCC延迟加载(我实际上不介意使用哪个编译器),但是它们看起来并没有真正支持任何延迟加载功能(我期望延迟加载功能)在需要此功能时,将存根放在父对象中,该对象试图按需加载另一个对象,但实际上并不需要)。以下命令显示了我试图使libbar.so被延迟加载到libfoo.so:

clang bar.c -fPIC -shared -o libbar.so

clang foo.c -Wl,-zlazy,lL'/path/to/where/lib/is',-lbar -o foo

如果libbar.so不存在,您将看到libfoo.so在进入条目之前引发异常。无论如何,我不介意上面的命令中是否有任何拼写错误,但想知道 Clang

/ GCC是否确实支持延迟加载功能 。

但是,就个人而言,如果Clang /

GCC不支持任何延迟加载功能,我是否相信Linux程序开发人员是否需要调用dlopen()或dlsym()来使共享库延迟加载。如果对象是用C编写的就可以了,但是如果对象是用C

++编写的,则情况必须非常复杂:(

我相信在编译器或链接器的帮助下实现的解决方案是最好的,因为我已经在Windows和Mac OS上成功完成了该解决方案。因此,我觉得公民即使梦想在Clang

/ GCC上也梦想拥有延迟加载功能,这将是一种自然的反应。如果您对我的感受有任何评论,我也将不胜感激。

PS。我知道Solaris支持延迟加载功能,但是这对我来说不是可行的方法,因为我不会对此进行任何开发。

无论如何,非常感谢您。

linux gcc延时怎么写,Clang / GCC是否真的支持延迟加载功能?相关推荐

  1. linux gcc延时怎么写,推迟C静态对象构建 – Linux上的GCC

    想象一下,我有一个名为MyClass的C类. 想象一下,我无法访问MyClass的源代码--它包含在一个库中,我只提供了库和MyClass的头文件. 想象一下,类本身需要环境预配置--例如--在调用类 ...

  2. win命令安装 安装cmake_win10下VSCode+CMake+Clang+GCC环境搭建教程图解

    打算用C/C++把基本的数据结构与算法实现一遍, 为考研做准备, 因为只是想实现算法和数据结构, 就不太想用VisualStudio, 感觉VSCode不错, 遂在网上找了一些教程, 结合自己的需求, ...

  3. Linux下的vim编辑器与gcc编译器及静动态库的制作

    1.vim编辑器的使用: (1)vim的三种模式: 命令模式:打开文件默认进入命令模式 编辑模式:需要输入一些命令切换到编辑模式 末行模式:在末行模式可以输入一些命令 命令模式aios和AIOS都可以 ...

  4. 转:GCC,LLVM,Clang编译器对比

    GCC,LLVM,Clang编译器对比 转自: http://www.cnblogs.com/qoakzmxncb/archive/2013/04/18/3029105.html 在XCode中,我们 ...

  5. 详解三大编译器:gcc、llvm 和 clang

    传统的编译器通常分为三个部分,前端(frontEnd),优化器(Optimizer)和后端(backEnd). 编译器一般构成 传统的编译器通常分为三个部分,前端(frontEnd),优化器(Opti ...

  6. linux gcc中sin30度,学习gcc.pdf

    学习gcc 如何在 Ubuntu 下安装和使用 gcc GCC 是在Linux 系统中用的比较多的编译器,一般做Linux 开发的朋友都会用 GCC 编译器,但今天 在 Ubuntu 上安装 GCC ...

  7. Linux中如何安装特定的gcc版本

    Linux允许多个版本的gcc共存,当你需要安装多个版本的gcc的时候,比如同时安装gcc-7和gcc-8,你可以通过 update-alternatives 来重定位你想使用的gcc版本. sudo ...

  8. 看inux系统中的c语言编译器,Linux系统自定义安装C语言gcc编译器图文详细教程

    有些Linux系统自带gcc编译器,有些则不带,比如CentOS版本的系统就没有gcc,我们在安装一些C语言开发的软件时,就没有办法进行编译,那就需要我们手动进行安装gcc,手动安装较麻烦,依赖了一些 ...

  9. 【Linux】Linux编程基础(vi、gcc、gdb)

    编写一个程序,首先是程序的录入,然后是程序的编译,最后是程序的调试.本文介绍进行这三步工作的主要工具:vi.gcc.gdb. 编辑器介绍 Linux提供了一个完整的编辑器家族系列.按功能可以分为两大类 ...

最新文章

  1. Java面试人事篇(二)
  2. Mac环境下sublime实现列选择或编辑的方法
  3. 研究表明:安卓和iOS应用无节操滥用邮箱和定位数据
  4. HTTP:HTTP的server and client详细攻略
  5. STM32 KEIL MDK 本地时间和Unix timestamp相互转换
  6. vue中的nextTick
  7. 3 地理位置定位_IP地理定位API的十大用途和应用
  8. 如何选择开源许可证?(Z)
  9. img超出div width时, jQuery动态改变图片显示大小
  10. YbtOJ-染色计划【树链剖分,线段树,tarjan】
  11. 深入理解JavaScript系列:闭包(Closures)
  12. 微课|中学生可以这样学Python(2.3.4节):例2-1
  13. 大家快来看看,心中无女人,写文章自然神。
  14. Win10专业版系统Docker安装、配置和使用详细教程
  15. 2022百度大数据开发工程师实习面试经历
  16. 爬取年报数据、解析PDF提取数据、分析代码(巨潮 Python)
  17. 对敏捷管理模式核心价值的解读
  18. 微信公众号支付 使用基于thinkphp 使用微信官网的sdk
  19. 这样充满青春活力的微信公众号图文排版,你见过吗?
  20. Pycharm2018.2破解版本闪退问题解决办法

热门文章

  1. 洛谷P4559 [JSOI2018]列队 【70分二分 + 主席树】
  2. spring framework体系结构及内部各模块jar之间的maven依赖关系
  3. eclipse中如何导入jar包
  4. fprintf 和 perror 的理解1
  5. 猎取人心的36条黄金法则
  6. 操作系统学习笔记-06-系统调用
  7. Kubernetes原理浅析
  8. 【剑指offer】面试题55 - II:平衡二叉树(Java)
  9. 【剑指offer】面试题21:调整数组顺序使奇数位于偶数前面
  10. Leetcode--113. 路径总和Ⅱ