腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(5195)
视频
沙龙
1
回答
从
仅
导出
全局
和
可见
符号
的
静态
存档
(`.a`)
创建
共享
库
(`.
so
`
android
、
c++
、
java-native-interface
我有一个包含许多
符号
的
静态
库
(foo.a),例如: 0000000000000000 l d .text.finish_doctype_system_id 00000000 .text.finish_doctype_system_id10shared_ptrIN8litehtml8documentEEE 0000000000000000 g F .text.document_width 0000002c document_width 当我使用-whole-archive
从
该
浏览 22
提问于2021-05-01
得票数 0
2
回答
静态
库
链接两次
c++
问题:Linux
和
Windows之间有什么区别吗?谢谢你
的
回答,我现在可以准确地解释我
的
情况了。Windows: 动态
库
有
静态
库
<e
浏览 6
提问于2015-07-03
得票数 9
回答已采纳
1
回答
单个进程上
的
多个SQLite
库
c++
、
sqlite
SQLite
库
是
静态
编译
的
,并根据libFoo.
so
链接。它们都是用隐藏
可见
性(-fvisibility=hidden)编译
的
,libFoo.
so
只
导出
其API
符号
,因此使用"nm -D libFoo.
so
“看不到SQLite
符号
。这是为了避免
符号
碰撞。此
共享
库
仅对一组特定
的
数据
库
文件执行读取操作.预
浏览 1
提问于2016-12-12
得票数 3
2
回答
Gcc隐藏来自包含
静态
库
的
符号
的
可见
性
c++
、
gcc
、
shared-libraries
、
visibility
、
linker-flags
我有: Foo foo; return result;libShared.
so
是用标志-fvisibility=hidden编译
浏览 9
提问于2015-07-28
得票数 7
回答已采纳
1
回答
如何
创建
特定于
共享
库
的
单例实例
c++
、
linux
、
linker
、
shared-libraries
我有一套插件
的
应用程序,所有链接到一个公共基础
库
。基
库
定义了一个单例,它维护每个插件中所有对象构造函数
的
列表。在windows上,我可以将这个基础
库
创建
为一个
静态
库
,从而在每个插件中放置一个单例副本。然而,在Linux上,我有一些相反
的
问题,。到目前为止,我已经尝试了以下几种方法: 用-fPIC作为
静态</em
浏览 1
提问于2016-11-18
得票数 5
回答已采纳
1
回答
更改对象文件或
库
中
的
符号
可见
性(t‘-> 'T')
c
、
shared-libraries
、
visibility
、
symbols
、
binutils
我需要更改对象文件或
库
中
的
符号
可见
性。例如,特定
的
共享
对象有一个
符号
名,但它是本地
的
,因此我无法绑定到它(在文本部分中,较低
的
t表示本地):000000000
浏览 4
提问于2014-01-17
得票数 2
1
回答
编译后添加-fvisibility=hidden
linux
、
gcc
、
ld
我正在构建一个
共享
对象(.
so
),并将其链接到一个第三方
静态
库
。在理想情况下,第三方
库
应该是用-fvisibility=hidden编译
的
--但事实并非如此。有没有办法避免在动态
库
导出
的
全局
符号
中包含由该
静态
库
定义
的
符号
? (如果重要的话,我在linux平台上使用
的
是gcc )
浏览 34
提问于2016-07-28
得票数 1
1
回答
共享
库
libbar.
so
静态
链接到libfoo.a,程序链接到libbar.
so
和
libfoo.
so
,会发生什么?
c++
、
linker
、
global-variables
、
shared-libraries
、
static-libraries
我构建了一个第三方C++
库
libfoo,包含
静态
(libfoo.a)
和
共享
(libfoo.
so
)版本。对象文件是用-fPIC
创建
的
。我已经构建了我
的
C++
共享
库
libbar,并将其
静态
地链接到libfoo.a。这是不需要--完整
存档
选项
的
。所以我相信libbar.
so
包含了它所需要
的
来自libfoo.a
的
所有<
浏览 1
提问于2015-09-18
得票数 1
回答已采纳
1
回答
创建
动态
库
时
的
问题
c
、
gcc
、
makefile
、
gnu-make
、
dynamic-linking
我正在编译带有标志a.c
和
b.c
的
文件-fstack-protector-strong,这将导致在对象文件a.o、b.o中引入新
的
符号
__stack_chk_failU __stack_chk_failU __stack_chk_failar rc libstat.a a.o b.
浏览 19
提问于2022-08-21
得票数 2
1
回答
是否有任何方法在链接时覆盖-fvisibility=hidden?
android
、
gcc
、
linker
、
shared-libraries
、
compiler-flags
我们正在使用第三方
静态
库
,比方说A.a用于安卓开发。我们将其链接为
共享
库
,它在一个应用程序中运行良好,但是当使用B.
so
构建另一个C.
so
时,A.a中
的
一些
符号
无法找到。我们已经使用-Wl,--export-dynamic
和
-Wl,--whole-archive来构建B.
so
。我们使用nm来检查这些
符号
,它是存在
的
,但是列表是“t”而不是“T”,这意味着它是本地
符号</em
浏览 6
提问于2016-03-29
得票数 2
回答已采纳
1
回答
如何在x86-64 Linux上通过GOT中
的
气体组件访问C
全局
变量?
linux
、
shared-libraries
、
x86-64
、
gnu-assembler
、
got
我
的
问题源代码 编译C
和
程序集代码并将其链接到一个<e
浏览 1
提问于2019-08-09
得票数 3
回答已采纳
1
回答
ELF
符号
可见
性
shared-libraries
、
visibility
、
symbols
、
elf
假设我在文件spec_a.h中定义了一个api (sym1),这个api在lib_imp1.
so
中有一个实现。我可以让一个应用程序dlopen这个
共享
库
,dlsym() sym1并调用它。应用程序是否可以dlopen()其他
共享
库
,并在lib_imp1.
so
中将其解析为sym1?如果是这样,我们该怎么做呢?如果可能,我们可以有两个实现,lib_imp1.
so
和
lib_imp2.
so
,对于同一个
符号
sym1,这两个实现
浏览 2
提问于2015-05-06
得票数 1
1
回答
隐藏
静态
库
中
的
符号
c++
、
shared-libraries
、
static-libraries
、
symbols
、
visibility
我有一个c++
共享
库
-- libA.
so
。我使用-fvisibility=hidden标志隐藏
符号
。应该
可见
的
符号
具有以下属性:__attribute__ ((visibility ("default")))。该
库
链接到
静态
库
- libB.a。
静态
库
(libB.a)中
的
所有
符号
都应该只对
共享
库</em
浏览 2
提问于2021-05-06
得票数 5
回答已采纳
1
回答
内核
导出
符号
还是
全局
符号
与
静态
全局
符号
?
c
、
linux
、
linux-kernel
我是有点堆叠
的
核心
符号
类型
的
意义。简单
的
静态
符号
具有与C
静态
符号
相同
的
含义。因此,局部
静态
变量具有局部范围和
静态
分配。
静态
函数作用域是一个文件。但是
静态
输出
的
符号
呢?如何处理EXPORT_SYMBOL()、EXPORT_PER_CPU_SYMBOL()、EXPORT_UNUSED_SYMBOL()宏
导出
浏览 2
提问于2015-03-25
得票数 3
回答已采纳
1
回答
如何在
共享
库
(Linux)中嵌入
静态
库
?
c++
、
linux
、
g++
我有一个没有源代码
的
静态
库
,需要从LuaJIT FFI动态调用它
的
符号
。 由于它是
静态
的
,所以我不能动态加载它,所以我尝试将它嵌入到
共享
库
中,然后在运行时加载
共享
库
。问题是
静态
库
的
导出
符号
存在于
共享
库
的
符号
表中,但没有定义。-Werror
浏览 5
提问于2021-07-01
得票数 2
回答已采纳
2
回答
处理
共享
对象中
的
全局
变量
c
、
global-variables
、
shared-libraries
、
extern
、
dlopen
在global.c文件中定义了一些
全局
变量,如下所示:我有一个头文件global.h将这个变量声明为extern现在我有了main.c,它与已编译
的
global.o (
从
global.c编译)链接,它具有打开(使用dlopen)
的
代码,
共享
对象sh.
so
是
从
sh.c构建
的
,通过global.h访问globalVar。尽管我
的
可执行文件定义了globalVar
浏览 3
提问于2017-04-24
得票数 3
回答已采纳
2
回答
gcc为什么不报告重复
符号
的
错误?
c++
、
linux
、
gcc
、
compiler-construction
、
linker
我正在使用Ubuntu来构建Android
和
Linux二进制文件。我有一个由两个
共享
库
链接
的
静态
库
,
静态
库
中有一个
全局
对象。根据我
的
理解,
全局
对象将存在于两个*.
so
中,并且会导致问题,因为每个
共享
库
中
的
函数
符号
访问不同
的
全局
变量。 (在构建两个
共享
浏览 3
提问于2014-06-27
得票数 1
回答已采纳
3
回答
将
符号
限制在linux可执行文件
的
本地范围内
linux
、
linker
、
symbols
实际上,我有一个
静态
链接到第三方
库
的
可执行文件,比如"ver1.a“,还使用了第三方".
so
”文件,该文件再次链接到同一个
库
,但不同
的
版本称为"ver2.a“。问题是这两个版本
的
实现是不同
的
。在开始加载可执行文件时,"ver1.a“中
的
符号
将被
导出
到
全局
符号
表中。我们想出了一个解决方案,就是我们不会将用于可执行文件
的
浏览 3
提问于2009-11-26
得票数 2
1
回答
将
静态
库
链接到exe
和
共享
库
后
的
分段错误
gcc
、
linker
、
static-linking
、
dynamic-linking
我有一个
静态
链接glib
库
和
动态链接
共享
库
的
程序,而
共享
库
又
静态
地链接相同
的
glib
库
。当我运行这个程序时,我会得到一个分段错误。那么,似乎有两个副本
的
global static变量?可执行文件不应该覆盖
共享
库
中
的
符号
吗?所以在动态链接期间,可执行文件中只有一个
全局
静态
变量?
浏览 3
提问于2021-06-11
得票数 1
回答已采纳
2
回答
如何知道对象文件中
符号
的
可见
性
c++
、
c
、
unix
、
nm
可见
性(来自__属性__(
可见
性(“……”))
和
-fvisibility)
的
符号
可以
从
so
文件中得知T被隐藏,T被
导出
(即默认)。但是如何直接
从
对象文件中获取这些信息呢?nm -C lib.o 将始终打印T为非C-
静态
符号
,无论能见度是什么。
浏览 5
提问于2020-03-02
得票数 0
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
从四个问题透析Linux下C++编译&链接
警惕利用Linux预加载型恶意动态链接库的后门
为什么需要动态链接?
探索静态库与动态库的“奥秘”
【精通内核】计算机程序的本质、内存组成与ELF格式
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
云直播
活动推荐
运营活动
广告
关闭
领券