当有人静态链接一个.lib时,链接器会将lib的全部内容复制到最终的可执行文件中还是只复制目标文件中使用的函数? 最佳答案 整个图书馆?--没有。只是你调用的函数?--没有。还有别的吗?--是的。它肯定不会扔到整个库中。但它也不一定只包括“目标文件中使用的函数”。链接器将创建一个递归构建的列表,列出库中的哪些对象模块满足您的undefinedsymbol。然后,它将包含这些对象模块中的每一个。通常,一个给定的对象模块将包含多个函数,如果其中一些没有被您做调用的函数调用,您将获得一些函数(和数据对象))你不需要的。
当有人静态链接一个.lib时,链接器会将lib的全部内容复制到最终的可执行文件中还是只复制目标文件中使用的函数? 最佳答案 整个图书馆?--没有。只是你调用的函数?--没有。还有别的吗?--是的。它肯定不会扔到整个库中。但它也不一定只包括“目标文件中使用的函数”。链接器将创建一个递归构建的列表,列出库中的哪些对象模块满足您的undefinedsymbol。然后,它将包含这些对象模块中的每一个。通常,一个给定的对象模块将包含多个函数,如果其中一些没有被您做调用的函数调用,您将获得一些函数(和数据对象))你不需要的。
假设有一个声明:structA{staticinti;};Aa;据我所知,输入字符串intdecltype(a)::i=0;没有严格描述的行为。可以解析为intdecltype(a)::i=0;,其中:int是一个decl-specifier和decltype(a)::ideclarator。但是可以解析为intdecltype(a)::i=0;,其中int和decltype(a)被解析为decl-specifers,而::i是(re)声明全局变量i-编译器应该给出一个错误消息,类似于“一个decl-specifier-seq不应包含两个type-specifiers"。我清楚地知道第
假设有一个声明:structA{staticinti;};Aa;据我所知,输入字符串intdecltype(a)::i=0;没有严格描述的行为。可以解析为intdecltype(a)::i=0;,其中:int是一个decl-specifier和decltype(a)::ideclarator。但是可以解析为intdecltype(a)::i=0;,其中int和decltype(a)被解析为decl-specifers,而::i是(re)声明全局变量i-编译器应该给出一个错误消息,类似于“一个decl-specifier-seq不应包含两个type-specifiers"。我清楚地知道第
我注意到我的编译器(MinGW)和Windows8SDK都带有相同的库,保存命名约定(即Windows8上的win32.libSDK是libwin32.a在MinGW库中)。是否所有编译器都带有这些库?这些库是否适用于多种操作系统?Windows8SDK附带的库与编译器附带的库之间有什么区别(如果有)? 最佳答案 有两种库:导入库:这些库仅列出在哪里可以找到对变量/函数/等的引用,但它们不包含代码本身。“普通”库(包含包含机器代码的目标文件):这些库包含目标文件,其中包含实际的机器代码。操作系统自带的库一般都是导入库。毕竟,实际的代
我注意到我的编译器(MinGW)和Windows8SDK都带有相同的库,保存命名约定(即Windows8上的win32.libSDK是libwin32.a在MinGW库中)。是否所有编译器都带有这些库?这些库是否适用于多种操作系统?Windows8SDK附带的库与编译器附带的库之间有什么区别(如果有)? 最佳答案 有两种库:导入库:这些库仅列出在哪里可以找到对变量/函数/等的引用,但它们不包含代码本身。“普通”库(包含包含机器代码的目标文件):这些库包含目标文件,其中包含实际的机器代码。操作系统自带的库一般都是导入库。毕竟,实际的代
在C++中,如果我有一个类:classExample{staticints_One,s_Two;...};语言是否明确定义s_Two也是静态的?换句话说,static关键字范围是int所到之处,还是可以像*一样只适用于一个变量? 最佳答案 是的,它适用于该声明中的每个名称:[dcl.stc]/1:[..]Atmostonestorage-class-specifiershallappearinagivendecl-specifier-seq[..]Thestorage-class-specifierappliestothenamed
在C++中,如果我有一个类:classExample{staticints_One,s_Two;...};语言是否明确定义s_Two也是静态的?换句话说,static关键字范围是int所到之处,还是可以像*一样只适用于一个变量? 最佳答案 是的,它适用于该声明中的每个名称:[dcl.stc]/1:[..]Atmostonestorage-class-specifiershallappearinagivendecl-specifier-seq[..]Thestorage-class-specifierappliestothenamed
看完thisdiscussion我意识到我几乎完全误解了这件事:)由于对C++抽象机的描述不够严格(例如,与JVM规范进行比较),如果不可能得到准确的答案,我宁愿得到关于合理“好”的规则的非正式澄清(非恶意)实现应遵循。标准第1.9部分的关键概念是实现自由,即所谓的假设规则:animplementationisfreetodisregardanyrequirementofthisStandardaslongastheresultisasiftherequirementhadbeenobeyed,asfarascanbedeterminedfromtheobservablebehavio
看完thisdiscussion我意识到我几乎完全误解了这件事:)由于对C++抽象机的描述不够严格(例如,与JVM规范进行比较),如果不可能得到准确的答案,我宁愿得到关于合理“好”的规则的非正式澄清(非恶意)实现应遵循。标准第1.9部分的关键概念是实现自由,即所谓的假设规则:animplementationisfreetodisregardanyrequirementofthisStandardaslongastheresultisasiftherequirementhadbeenobeyed,asfarascanbedeterminedfromtheobservablebehavio