问题标签 [linkage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7379 浏览

c - 静态声明之后的非静态声明

考虑这些例子:

为什么在第一个示例中可以,而在第二个示例中则不行?

就文件范围变量(全局范围)而言,当没有指定关键字时,它们具有外部链接和静态持续时间。

谢谢

AFAIK,功能的链接和存储持续时间有点不同。

编辑:我尝试使用 gcc 4.5.2 -Wall -pedantic --std=c99 进行编译

更多信息:http ://c-faq.com/decl/static.jd.html您可以看到第一个示例也可以在那里工作,但第二个没有。但是,我看不出是什么让它们如此不同。

0 投票
2 回答
6627 浏览

c - 块范围链接 C 标准

以下标识符没有链接: 声明为对象或函数以外的任何标识符;声明为函数参数的标识符;没有存储类说明符 extern 声明的对象的块范围标识符

对于在该标识符的先前声明可见的范围内使用存储类说明符 extern 声明的标识符,如果先前声明指定内部或外部链接,则后面声明的标识符的链接与链接相同在事先声明中指定。如果没有可见的先前声明,或者先前的声明未指定链接则标识符具有外部链接

GCC 错误:没有链接的后续声明的外部声明

有人可以解释我为什么会收到此错误吗?

谢谢

0 投票
1 回答
1709 浏览

c++ - lambda 可以有外部“C”链接吗?

这似乎适用于我尝试过的平台:

但是当不需要时,再次传递静态成员函数也可以在这些平台上工作。

有没有办法强制 lambda 具有适当的链接以使其安全和便携?或者已经是了吗?

0 投票
1 回答
230 浏览

android - 使用 Android NDK 工具链链接 2+ 静态库的顺序

这更像是一种普遍的好奇心。

假设我有几个静态类型的库:A、B 和 C。现在我想将另一个使用的库链接ABC到共享库 D。

让我们假设这是链接它们的正确方法:

当我将上一行更改为以下内容时会发生什么:

库会ABC在链接中使用两次还是在下面发生其他事情?

0 投票
2 回答
723 浏览

c++ - std::piecewise_construct 不会导致 ODR 违规吗?

std::piecewise_construct,在 <utility> 中定义,自声明以来具有内部链接constexpr。我想知道std::piecewise_construct在标头中使用是否会违反 ODR。例如:

一个.hpp

翻译单元 1

翻译单元 2

TU 1 中的std::piecewise_constructinf指的是与fTU 2 中不同的对象。我怀疑f违反了 ODR。

N3290(也可能是 ISO/IEC 14882:2011)在 3.2/5 中表示以下情况是 ODR 的一个例外:

如果对象在 D 的所有定义中具有相同的文字类型,并且该对象使用常量表达式(5.19)初始化,并且值(但不是地址),则名称可以引用具有内部链接或没有链接的 const 对象该对象被使用,并且该对象在 D 的所有定义中具有相同的值;

f满足几乎所有要求,但“使用对象的值(但不是地址)”对我来说似乎模棱两可。确实std::piecewise_construct_t没有状态,但是调用 的分段构造函数std::pair涉及调用 的隐式声明的复制构造函数std::piecewise_construct_t,其参数是const std::piecewise_construct_t &。地址被“使用”了,不是吗?

我很困惑。

参考: http: //lists.boost.org/Archives/boost/2007/06/123353.php

0 投票
0 回答
511 浏览

c++ - 当指示以 64 位编译时,sun cc 找不到某些库

为了显示:

我还注意到:

因此,根据此页面,ld 的路径查找对于这两种情况应该是相同的,这显然不是......

有谁知道如何解决这个问题?提前致谢

0 投票
1 回答
6445 浏览

dll - 链接 64 位 dll mingw

我正在链接一个 dll 与其他 dll 的一些依赖项。我在链接项目的 64 位版本时遇到问题。就我使用 mingw32 而言,使用 32 位版本一切正常。但是当我切换到依赖 dll 和 mingw-w64 的 64 位版本时,它会显示以下内容:

'libblabla' 是我所依赖的库。我绝对确定它是 64 位版本并且应该兼容。这是mingw中的错误吗?

另外,我尝试使用lib文件链接,但提供的lib也被认为是不兼容的,由dlltool生成的没有生成导入表!

我完全坚持这一点。谢谢你。

0 投票
1 回答
359 浏览

sql - SQL:通过集合论匹配记录

我最近一直在为一个复杂的 SQL 查询而苦苦挣扎。
我有以下表格:

它基本上是一个用户为每个属性选择值的项目。每个属性可以是单值或多值。例如,用户可以为属性 {ID=1,title=Hobbies} 选择多个值,但必须为属性 {ID=2,title=HairColor} 选择单个值。

使用另一个表 - [dbo].[Search_Property_Values_User_Linkage] - {UserID,PropertyID,valueID} 我正在选择我想要的属性并且我希望找到匹配的用户。但是,如果我没有为 HairColor 选择一个值(或多值),我应该得到所有用户(因为我不想按 HairColor 过滤)。

到目前为止这很容易,但我似乎无法解决的问题是前面有多个值或没有用户定义的值的情况。例如,我希望所有具有 HairColor=Brown 和 Hobbies IN(basketball,football) 的用户。

我可以检索与其中一个术语匹配的所有用户(以及具有其他属性的用户,因为我没有选择过滤它们),但我不能只获取完全符合我的条件的用户。

要将代码转化为文字,假设我需要所有用户:

  • 匹配我选择的所有属性值
  • 可能有其他属性,例如 EyesColor,但由于我没有选择过滤值,它们也可能会被检索到。
  • 可能根本没有设置任何属性,但由于我没有为此属性选择值,所以它们是有效的!
  • 将所有选定的属性作为组匹配,而不仅仅是我选择的一个属性(喜欢篮球但头发颜色为“红色”的用户是无效的!

我遇到了一个解决方案,在该解决方案中,我创建了一个虚拟表,该表按位“完成”未选择的值。例如(不是实际代码):

我基本上 CROSS-JOIN [Property] WITH [User]
和 LEFT-OUTER-JOIN 其余的表来匹配选择。
我让所有用户和他们匹配到一个属性。这还不够好,因为我得到了棕色头发的用户,喜欢篮球/足球的用户,但没有同时匹配两者的用户(当然还有我未定义的任何其他属性)。
这很重,但这是我到目前为止分析问题的内容。

我将不胜感激任何帮助。我想我在 10 年前的数学课上遗漏了一些东西……

编辑:数据库图片:http: //i51.tinypic.com/2n1cfwg.png

0 投票
1 回答
462 浏览

ejb - LinkageError 从 NetBeans 平台客户端应用程序调用 Weblogic EJB

我在调用 EJB 在 Weblogic 服务器上运行的 NetBeans 平台应用程序中遇到以下链接错误。问题似乎是Oracle提供的wlfullclient.jar(Weblogic Client)和JDK中的rt.jar(使用JDK 6和7尝试)包含一些相同的CORBA包。wlfullclient.jar 作为封装的 JAR 包含在执行 EJB 调用的模块中。

我编写了一个独立的 Java 程序,它做同样的事情并且运行良好。

任何援助将不胜感激。

0 投票
2 回答
513 浏览

c++ - 块范围内没有链接?

块中声明的所有变量是否都“无链接”?

例如:

1:

如果我声明一个静态变量:

它有内部链接还是没有链接?如果没有链接,那为什么要让它静态呢?

2:

如果我使用外部会发生什么?

在这种情况下, 的联动是i什么?