linux gcc延时怎么写,Clang / GCC是否真的支持延迟加载功能?
如果您 确实经历过
与上述标题相关的事情,您是否愿意对此发表评论?我试图使共享对象在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是否真的支持延迟加载功能?相关推荐
- linux gcc延时怎么写,推迟C静态对象构建 – Linux上的GCC
想象一下,我有一个名为MyClass的C类. 想象一下,我无法访问MyClass的源代码--它包含在一个库中,我只提供了库和MyClass的头文件. 想象一下,类本身需要环境预配置--例如--在调用类 ...
- win命令安装 安装cmake_win10下VSCode+CMake+Clang+GCC环境搭建教程图解
打算用C/C++把基本的数据结构与算法实现一遍, 为考研做准备, 因为只是想实现算法和数据结构, 就不太想用VisualStudio, 感觉VSCode不错, 遂在网上找了一些教程, 结合自己的需求, ...
- Linux下的vim编辑器与gcc编译器及静动态库的制作
1.vim编辑器的使用: (1)vim的三种模式: 命令模式:打开文件默认进入命令模式 编辑模式:需要输入一些命令切换到编辑模式 末行模式:在末行模式可以输入一些命令 命令模式aios和AIOS都可以 ...
- 转:GCC,LLVM,Clang编译器对比
GCC,LLVM,Clang编译器对比 转自: http://www.cnblogs.com/qoakzmxncb/archive/2013/04/18/3029105.html 在XCode中,我们 ...
- 详解三大编译器:gcc、llvm 和 clang
传统的编译器通常分为三个部分,前端(frontEnd),优化器(Optimizer)和后端(backEnd). 编译器一般构成 传统的编译器通常分为三个部分,前端(frontEnd),优化器(Opti ...
- linux gcc中sin30度,学习gcc.pdf
学习gcc 如何在 Ubuntu 下安装和使用 gcc GCC 是在Linux 系统中用的比较多的编译器,一般做Linux 开发的朋友都会用 GCC 编译器,但今天 在 Ubuntu 上安装 GCC ...
- Linux中如何安装特定的gcc版本
Linux允许多个版本的gcc共存,当你需要安装多个版本的gcc的时候,比如同时安装gcc-7和gcc-8,你可以通过 update-alternatives 来重定位你想使用的gcc版本. sudo ...
- 看inux系统中的c语言编译器,Linux系统自定义安装C语言gcc编译器图文详细教程
有些Linux系统自带gcc编译器,有些则不带,比如CentOS版本的系统就没有gcc,我们在安装一些C语言开发的软件时,就没有办法进行编译,那就需要我们手动进行安装gcc,手动安装较麻烦,依赖了一些 ...
- 【Linux】Linux编程基础(vi、gcc、gdb)
编写一个程序,首先是程序的录入,然后是程序的编译,最后是程序的调试.本文介绍进行这三步工作的主要工具:vi.gcc.gdb. 编辑器介绍 Linux提供了一个完整的编辑器家族系列.按功能可以分为两大类 ...
最新文章
- Java面试人事篇(二)
- Mac环境下sublime实现列选择或编辑的方法
- 研究表明:安卓和iOS应用无节操滥用邮箱和定位数据
- HTTP:HTTP的server and client详细攻略
- STM32 KEIL MDK 本地时间和Unix timestamp相互转换
- vue中的nextTick
- 3 地理位置定位_IP地理定位API的十大用途和应用
- 如何选择开源许可证?(Z)
- img超出div width时, jQuery动态改变图片显示大小
- YbtOJ-染色计划【树链剖分,线段树,tarjan】
- 深入理解JavaScript系列:闭包(Closures)
- 微课|中学生可以这样学Python(2.3.4节):例2-1
- 大家快来看看,心中无女人,写文章自然神。
- Win10专业版系统Docker安装、配置和使用详细教程
- 2022百度大数据开发工程师实习面试经历
- 爬取年报数据、解析PDF提取数据、分析代码(巨潮 Python)
- 对敏捷管理模式核心价值的解读
- 微信公众号支付 使用基于thinkphp 使用微信官网的sdk
- 这样充满青春活力的微信公众号图文排版,你见过吗?
- Pycharm2018.2破解版本闪退问题解决办法