腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
为什么
在
使用
模板
时
生成
的
函数
的
符号
类型
是
“
弱
”?
c++
、
templates
、
weak-symbol
已创建
模板
函数
C++ template <class T> void myswap(T&d,T&s)。Main将它用于整型、双精度、复杂
类型
。
使用
g++编译了源代码。
在
通过nm转储
符号
表
时
,为各个
类型
生成
的
函数
具有
符号
类型
"W“。
为什么
它们被
生成
为
弱
符号
浏览 34
提问于2019-10-05
得票数 3
回答已采纳
3
回答
为什么
结构和类定义可以
在
多个翻译单元上重复?
c++
、
language-lawyer
、
linker-errors
根据“一个定义规则”,类和结构定义不得
在
单个翻译单元中重复。 但
为什么
允许
在
多个翻译单位重复,如果它们
是
在
现实中
的
定义。
为什么
链接器在这种情况下不抛出多个定义错误?如下所示,应该通过相同
的
逻辑抛出多个定义错误。
浏览 0
提问于2019-04-03
得票数 1
回答已采纳
1
回答
如何使共享库
的
符号
变得强大?
c++
、
linux
、
shared-libraries
我创建了一个共享库,它引用了许多C++
模板
函数
。这些
符号
作为
弱
引用输入到共享库
的
导出表中(例如,当我
使用
W查看共享库
的
符号
时
,它们显示为nm
类型
)。这意味着在运行时,这些
符号
可能会被第一个加载
的
不同共享库
的
副本插入。 对于我
的
应用程序来说,重要
的
是
我
的
共享库
使用
这些
函
浏览 3
提问于2016-12-07
得票数 0
回答已采纳
1
回答
显式类
模板
实例化
的
链接
c++
、
templates
、
c++11
、
linkage
同一类
模板
的
多个实例化是否允许
在
不同
的
编译单元中具有相同
的
类型
?
函数
模板
呢?main() return testFn() == A<int>().out();如果我跑了它编译
时
不抱怨重复
的
定义我引用了标准1
的
旧草案,并且假设链接部分没有太多
的
变化(除了匿名名称空间)
浏览 0
提问于2015-05-29
得票数 11
回答已采纳
2
回答
成员
函数
模板
是否需要“内联”?
c++
、
templates
如果我
在
一个非
模板
类中有一个成员
函数
模板
,并且想在类之外定义它-我必须
使用
“内联”吗?编辑:链接器
在
没有内联
的
情况下不会抱怨,但仍然
是
有效
的
C++03吗?编辑: 到目前为止,我所了解到
的
是
: gcc (以及其他编译器也是如此)将隐式
模板
实例化为
弱
符号
,这意味着如果在多个翻译单元中实例化,则在链接时间内不会发生冲突。由于
弱
浏览 2
提问于2012-10-02
得票数 7
2
回答
模板
函数
在哪里实例化?
c++
、
templates
、
compilation
、
linker
、
one-definition-rule
我相信有4种情况下,我
的
问题可能有不同
的
答案。这些情况按成员
函数
和非成员
函数
进行排序,并在没有库
的
情况下进行排序。库中
的
非成员
函数
和#include "func.h" //st
浏览 3
提问于2020-10-26
得票数 0
回答已采纳
1
回答
为什么
链接器不抱怨多个
函数
定义(只
使用
模板
函数
)?
c++
、
templates
main.cpp" 结果:现在,如果在pid.c和pid2.c中
使用
非
模板
化
的
函数
浏览 3
提问于2015-10-16
得票数 1
回答已采纳
1
回答
弱
符号
的
无定义行为
linker
、
elf
、
relocation
根据我搜索
的
内容,
弱
符号
对于提供库
函数
的
可重写
的
默认实现非常有用。但是,也允许只声明
弱
符号
,而不进行定义。引用的话, void __attribute
浏览 8
提问于2022-04-20
得票数 0
回答已采纳
2
回答
关于显式
模板
实例化
的
混淆
c++
、
templates
、
c++11
、
language-lawyer
、
explicit-instantiation
嗯,我想我只是被显式
模板
实例化~>_<~弄糊涂了。 我希望有一种有洞察力
的
方法来理解显式
模板
实例化,以便对上述所有问题
的
答案进行逻辑推导和解释。
浏览 3
提问于2015-10-01
得票数 2
5
回答
这个只有头
的
库
是
如何防范链接器问题
的
?
c++
在
阅读了之后,我以为我什么都懂了,但后来我从一个流行
的
标头库中看到了。 除了
在
SO问题中描述
的
方式之外,还可以避免多个定义链接器错误。也许这个库正在
使用
其他人没有提到
的
技术,所以这个问题值得更多
的
解释。库假设您不会在翻译单元中包含它
的</
浏览 4
提问于2015-11-02
得票数 1
回答已采纳
1
回答
VisualStudio *.obj文件大小(513Mb对象和534Mb库)
c++
、
visual-studio
、
visual-studio-2008
我
是
一名C++开发人员,
使用
Visual Studio2008。如何减小*.obj文件
的
大小?我读过,但没有找到答案。当我将项目构建到一个静态库
时
,所有*.obj文件
的
总大小
是
513Mb,
生成
的
库
是
534Mb。每个obj文件大小为1-13Mb。调试可执行文件为11Mb。链接时间代码
生成
(/Gm)已关闭。 提前谢谢。
浏览 0
提问于2009-01-06
得票数 6
回答已采纳
1
回答
具有内部和外部链接以及编译器优化
的
内联
函数
之间有什么实际区别吗?
c++
、
language-lawyer
、
compiler-optimization
、
inline-functions
如果一个
函数
是
static inline,那么这里
的
inline只是一个建议。对于static或static inline,该
函数
具有内部链接,编译器知道该
函数
不能在转换单元之外调用。因此,通过编译器优化,可能不会为该
函数
发出任何
符号
。内嵌
函数
应在
使用
odr
的
每个翻译单元中定义,并在每种情况下具有
浏览 3
提问于2021-11-14
得票数 3
回答已采纳
1
回答
内联
函数
是否会导致创建
弱
符号
?
c
、
gcc
、
compiler-errors
编程语言:C现在,这个文件包含在不同
的
C文件中
的
多个位置。我
的
理解
是
,根据我过去和GCC
的
经验,它会产生一个多个定义
的
错误,这是我所期望
的
。但在我们
的
工作中,我们没有
浏览 3
提问于2016-05-13
得票数 2
1
回答
为什么
ld链接器允许具有相同方法
的
多个类定义?
c++
、
linker
、
g++
、
ld
考虑这个文件,first.cpp,包含一个类定义和
使用
:{{ ~Foo();当有两个具有相同名称
的
函数
时
,链接器会抱怨重复
浏览 4
提问于2012-05-25
得票数 18
回答已采纳
3
回答
库中C++
模板
实例
的
符号
强制定义
c++
、
templates
、
symbols
、
nm
我想提供一个提供
模板
代码
的
库。但是,当我能够猜出我
的
模板
的
不同
类型
的
用法
时
,我也想尽可能地保留这段代码(
生成
的
代码)
的
所有权。下面
是
我想要做
的
事情
的
一个例子:#include <iostream> void print_me() { std::cout <&l
浏览 7
提问于2014-01-31
得票数 4
回答已采纳
1
回答
为什么
在
共享库中强制导出std::
符号
?
c++
、
linux
、
gcc
、
linker
、
shared-libraries
如果您
的
共享库在内部
使用
C++,那么它引用
的
所有std::
模板
和
类型
都将作为
弱
符号
导出。即使你
使用
-fvisiblity=hidden和-Wl,--exclude-libs,ALL。隐藏这些
符号
的
唯一方法
是
使用
版本脚本。用版本脚本隐藏它们有什么坏处吗?
浏览 0
提问于2019-10-10
得票数 11
1
回答
优化
弱
符号
查找
c++
、
linux
、
gcc
、
llvm
、
binutils
如果您尝试在任何C++程序中
使用
nm实用程序,您可能已经注意到许多
符号
被识别为'V‘或'W’。两者都是不同
类型
的
弱
符号
。现在,
在
可执行文件中包含大量
的
弱
符号
是
不好
的
,因为在运行时,动态链接器将尝试解决所有这些问题。我在想,
在
链接可执行文件
时
,可以通过执行一个简单
的
约定来节省大量时间: 每当在可执行文件中创
浏览 0
提问于2013-03-03
得票数 1
1
回答
如何将
模板
实例化导出为非
弱
?
c++
、
gcc
、
linker
、
elf
、
icc
C++
模板
函数
作为
弱
符号
导出,以绕过“一个定义规则”()。在为每个用例显式实例化
函数
的
情况下,是否有一种方法将
符号
导出为非
弱
符号
?.template void foo<short>();当我用GCC或ICC编译上面的代码
时
,它们被标记为
弱
: $ nm fo
浏览 0
提问于2021-05-12
得票数 0
回答已采纳
2
回答
链接器如何解析C中多个已定义
的
全局
符号
c
、
linker
、
operating-system
、
static-linking
我
的
教科书上说:因此,我创建了两个文件来查看:int number; return 0;file2.c (仅一行):我运行了gcc -Wall -o program
浏览 3
提问于2018-11-05
得票数 3
1
回答
弱
符号
别名
在
OS上类似于Linux上,还是最近
的
等价物?
c
、
linux
、
macos
、
linker
、
dynamic-linking
我做了什么
在
适用
的
情况下,当来自同一个库
的
函数
相互调用时,我试图避免调用PLT存根。这样,共享对象中
的
代码就不会
使用
弱
符号
。它只直接调用本地
函数
。例如,当调用_bar()
时
,它直接调用_foo()。 但是用户不知道_*
函数
,总是
使用
相应
的
浏览 2
提问于2013-08-15
得票数 62
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
从kernel到Android
符号的那些问题
Tensorlang:基于TensorFlow的可微编程语言
C+模板元编程:探索无穷可能性的神技!
IDEA 注释模板这样搞!爽!
热门
标签
更多标签
活动推荐
运营活动
广告
关闭
领券