腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
符号
可
见性
-
共享
库
与
dll
c++
、
dll
、
shared-libraries
、
symbols
、
visibility
我有一个定义全局
符号
函数的C++动态
库
。当我使用gcc编译
库
时,这些
符号
在默认情况下是可见的。当应用程序链接到几个
库
时,可能会导致
符号
冲突。API函数应该包含以下属性:__attribute__ ((visibility ("default"))) 假设我使用Microsoft Visual Studio编译器在Windows上编译了一个动态
库
。有些
符号
不是用__declspec(dllexport)定义的,这是否意味着这些
浏览 30
提问于2021-05-05
得票数 1
回答已采纳
1
回答
在
共享
库
中导出静态函数和变量
c
、
static
、
shared-libraries
、
linkage
最近,我的
库
的一个用户由于名称
与
另一个
共享
库
的导出函数冲突而崩溃。经过调查,我发现我的几个静态函数是
共享
库
的
符号
表的一部分。parse_bool_var(root_obj, "bool_b", &bool_b);{} 在目标文件和
共享
库
的
符号
表中都可以看到静态变量egrep '
浏览 96
提问于2018-05-28
得票数 4
回答已采纳
3
回答
主库和
共享
库
之间的全局名称不可见
c++
、
shared-libraries
我和gcc一起编译了一个
共享
库
,并将它链接到我的main。主类应该初始化一个记录器类,这个记录器类应该在
共享
库
中可见,但是看起来
共享
库
有它自己的实例。Log gLog(new StreamWriter()); 当我尝试链接它时,我在
共享
库
中得到链接器错误undefined symbol _gLog。更糟糕的是,我想我可以创建一个小的虚拟模块,在其中我在
共享
库
中创建相同的全局变量,然后调用一个函数来初始化它。但是对于这
浏览 4
提问于2013-05-24
得票数 1
回答已采纳
3
回答
C++
共享
库
显示内部
符号
c++
、
linker
、
shared-libraries
我已经建立了一个
共享
图书馆(.
dll
,.so)
与
VC++2008和GCC。问题是,在这两个
库
中,它都显示了私有
符号
(类、函数)的名称,并且没有导出它们。在GCC中,我做了:用-fvisibility=hidden编译,然后用属性((可
见性
(“默认”))公开)谢谢!
浏览 2
提问于2009-08-11
得票数 3
2
回答
在编写
库
时,是否应该将可
见性
/导出宏应用于模板?
c++
、
dll
、
shared-libraries
、
visibility
在构建C++
DLL
或
共享
库
时,经常会通过宏将__attribute__((__visibility__("default")))或__declspec(dllexport)附加到应该提供给
库
使用者的具体
符号
(类、函数等),而其他
符号
默认具有内部可
见性
。如果定义内联函数的标头的使用者实际上是内联函数,那么就不需要
符号
。如果消费者发布了一个不符合标准的定义,那还是可以的。唯一的缺点是,
DLL
内部和每个消费
库<
浏览 5
提问于2014-07-06
得票数 7
回答已采纳
2
回答
链接器如何解析动态可加载
库
中的重复
符号
?
c
、
linux
、
build
、
linker
、
dynamic-linking
我有两个动态加载
库
lib_smtp.so和libpop.so等等,它们都有一个名为protocol的全局变量,该变量分别初始化为"SMTP“和"POP”。我有另一个静态
库
libhttp.a,其中protocol被初始化为"HTTP“。我很想知道链接器是如何在动态链接过程中解析重复
符号
的,这里所有
浏览 3
提问于2015-05-06
得票数 4
1
回答
共享
库
-- .so
linux-device-driver
、
embedded-linux
在windows编程中,我们使用
dll
,一旦加载
dll
,就可以从其中导入
dll
的
符号
。 我的
共享
库
访问- USART驱动程序系统调用接口-如果驱动程序
与
内核紧密相连的话?如果驱动程序是使用Mod探头或不平滑加载的,那么--<e
浏览 1
提问于2012-12-02
得票数 1
回答已采纳
3
回答
静态函数和具有“隐藏”可
见性
属性的函数之间的实际区别是什么?
c
、
visibility
我现在正在研究
符号
可
见性
,我对static函数和使用__attribute__((visibility("hidden")))或使用-fvisibility=hidden命令行选项标记的函数之间的区别感到有点困惑
浏览 5
提问于2013-02-17
得票数 18
回答已采纳
5
回答
限制Linux静态
库
中的
符号
c
、
linux
、
gcc
、
static
我正在寻找限制导出到Linux静态
库
(归档)的C
符号
数量的方法。我只想把这些限制在库的官方API的一部分中。我已经使用“静态”将大多数函数声明为静态函数,但这限制了它们的文件范围。我可以使用Ulrich的中的技术来实现
共享
库
,但是我不能将这些技术应用到静态归档中。在他早期的论文中,他写道: 有人能帮我找到这些选择吗?
浏览 5
提问于2008-12-26
得票数 32
1
回答
Linux和
共享
库
,链接vs
符号
可
见性
linux
、
shared-libraries
、
dynamic-linking
、
dlopen
当我的应用程序链接到
共享
库
(它不隐藏
符号
)时,该
库
中的所有
符号
都是可见的。还可以使用dlopen在运行时加载
共享
库
。是否可以使用dlopen模式参数来控制
符号
的可
见性
,或者我总是需要使用dlsym来获得欲望
符号
?
浏览 4
提问于2021-12-02
得票数 0
回答已采纳
1
回答
版本-脚本和隐藏的可
见性
gcc
、
shared-libraries
、
ld
当使用gcc构建
共享
库
时,可以使用-fvisibility=hidden限制
符号
的可
见性
。我还刚刚了解到,您可以使用version选项将可
见性
限制为ld。void foobar() {}然后,我将版本脚本文件
与
: global:}gccfvisibility=hidden -Wl,--version-script=<versi
浏览 5
提问于2011-11-14
得票数 10
2
回答
共享
对象和
dll
之间的区别
c++
、
c
、
dll
、
shared-libraries
我有一个
库
,它在编译时构建一个名为libEXAMPLE.so的
共享
对象(在so.le文件夹中),以及一个名为EXAMPLE.so的
dll
(在
dll
文件夹中)。这两个
共享
对象在大小上非常相似,看起来完全一样。在互联网上搜索发现,程序使用
dll
进行
符号
解析的方式
与
使用
共享
对象进行
符号
解析的方式可能存在差异。 你们能帮我理解这一点吗?
浏览 4
提问于2012-11-09
得票数 5
3
回答
集成多个C++程序
c++
、
integration
我正在尝试将这两个程序集成在一起,并添加一些更多的功能,比如
共享
评分,但我真的没有方向。
浏览 3
提问于2012-11-28
得票数 1
回答已采纳
1
回答
跨二进制模块实现单节点
c++
、
c++11
、
singleton
、
dynamic-linking
、
boost-log
该标准处理多个翻译单元(实例化单元),从而处理多个对象模块,但似乎不承认有可能拥有多个独立编译和链接的二进制模块(即Linux上的.so文件和.
dll
上的.
dll
文件)。当只涉及一个二进制模块时,下面的代码片段说明了一个优雅的、
可
移植的(符合标准的)解决方案。
浏览 4
提问于2015-10-01
得票数 4
回答已采纳
1
回答
cmake add_library如何决定
符号
的可
见性
?
c++
、
cmake
、
shared-libraries
、
visibility
、
undefined-symbol
我正在使用CMake add_library命令构建一个
共享
库
,如下所示:当我使用'nm‘检查这个
库
时,我发现一些
符号
被标记为全局可见("T"),而其他
符号
只在库内部可见("t")。当我没有做任何特别的控制时,是什么决定了
符号
的可
见性
? 我问这个问题是因
浏览 54
提问于2018-06-01
得票数 3
2
回答
GCC:在什么方面,可见内部“在实际使用中是相当无用的”?
gcc
、
export
、
visibility
、
symbols
目前,我正在使用GCC为QNX (x86)开发一个
库
,我想制作一些
符号
,这些
符号
只在库中使用,对其他模块是不可见的,特别是在使用该
库
的代码中。这已经奏效了,但是,在研究如何实现它的过程中,我在GCC的文档中发现了一个非常令人担忧的段落(参见,对标志-fvisibility的解释): 我非常感
浏览 4
提问于2014-01-27
得票数 21
回答已采纳
2
回答
Gcc隐藏来自包含静态
库
的
符号
的可
见性
c++
、
gcc
、
shared-libraries
、
visibility
、
linker-flags
我有: 谢谢
浏览 9
提问于2015-07-28
得票数 7
回答已采纳
2
回答
C++ -fvisibility=hidden -fvisibility-内联-隐藏
c++
、
linux
、
visibility
、
gnu
、
dynamic-linking
我有一个关于C++可
见性
属性的问题。我读过,但我还是不太明白它是如何工作的。那么你打算如何链接
共享
库
呢?有什么特别的方法吗?
浏览 1
提问于2010-08-26
得票数 27
回答已采纳
1
回答
Clang的'type_visibility‘属性是做什么的,什么时候应该使用它?
c++
、
c++11
、
clang
、
libc++
它用于libc++中的许多模板类型,如tuple_element、tuple等。
浏览 1
提问于2015-02-10
得票数 19
回答已采纳
5
回答
在使用g++创建的
共享
库
中隐藏实例化的模板
c++
、
templates
、
g++
、
visibility
我有一个包含以下内容的文件: std::map<int, A> m;在
与
g++一起编译为
共享
库
时,该
库
包含std::map<int, A>的所有方法的动态
符号
。因为A对这个文件是私有的,所以不可能用相同的参数在任何其他
共享
库
中实例化std::map,所以我想隐藏模板实例化(出于中描述的一些原因)。同样,使用-fvisibil
浏览 3
提问于2010-05-27
得票数 16
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
为什么需要动态链接?
Window api(一)
VS2019:OpenMP更新及错误修复
C语言__attribute__的运用
网友在windows中发现大小超过259GB的dll文件!
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券