问题标签 [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.
exception - Gradle + 声纳 + Groovy = 失败?
执行时:
对于 groovy 项目,发生以下错误:加载程序约束违规:加载程序(org/codehaus/plexus/classworlds/realm/ClassRealm 的实例)先前为名为“groovyjarjarantlr/TokenStream”的不同类型启动加载
这怎么可能解决?
使用的版本:
- gradle-1.0-milestone-8a
- org.codehaus.groovy:groovy:1.8.4
- 声纳 2.13
完整的堆栈跟踪:
visual-studio - 如何在我的项目中正确构建用于调试和发布配置的第三方库?
当我需要构建一些第三方库以在不同版本的 MSVC 下的多个项目中使用时,我通常为每个MSVC 版本以及调试和发布配置构建它。这就是 boost 所做的,这就是我们在团队中的整个一生都在做的事情。
但是,我仍然不明白,为什么我不能用 like... 来构建这个库。我只需要函数原型和目标代码,对吗?由于我静态链接 CRT,我没有外部依赖项。但是,当我尝试将在 MSVC8 下的 Release 中构建的库与我在 MSVC10 下的 Debug 中的项目链接时,我遇到了这个令人讨厌的“已定义”链接器错误,我们都非常讨厌。
但为什么?我可以在 lib 中“封装”所有这些函数而不导出它们,以便我的项目只从 lib 中获取它需要的东西吗?为什么我可以拥有可以在每个项目中链接的 libpng 和 zlib 的预编译版本?是的,我猜它们不是使用 MSVC 构建的,但仍然使用 CRT 的相同功能。那么任何人都可以深入解释或分享对这个问题的一些开明解释的链接吗?
actionscript-3 - 找不到文件 AS3
我正在用 AS3 编写程序。它的确切内容在这里似乎并不重要。我基本上有 4 个类,分成 4 个文件。问题是,它找不到这些文件之一,我不明白为什么。查了好几遍,连老师也查了,还是查不出来哪里有问题。有没有其他人有类似的问题,或者对如何解决这个问题有任何想法?
编辑:第 37 行 1046:找不到类型或不是编译时常量:CustomTextField。第 37 行 1180:调用可能未定义的方法 CustomTextField。(两次)
第二个文件:
java - 如何解决此 Weblogic 间歇性 java.lang.LinkageError?理解它的含义并修复它的步骤是什么?
我抛出了一个间歇性链接错误:(这基本上是我所拥有的所有信息)
或者以更易读的方式
异常: java.lang.LinkageError
- 场地:
service
- CL 实例:
java.net.FactoryURLClassLoader
- 参考类:
org.apache.axis.client.Stub
- 第二个 CL 实例:
weblogic.utils.classloaders.ChangeAwareClassLoader
- 字段的解析类型:
java.xml.rpc.Service
- 场地:
这是否意味着我加载了 2 个版本的 java.xml.rpc.Service?是这样吗?怎么会这样?解决方法是什么?
c - CRT 与共享库和应用程序的链接
Windows 应用程序动态链接 CRT。在应用程序执行其部分代码后,它会加载共享库。共享库与 CRT 静态链接。
我的问题是:
如果应用程序对“CRT 状态”进行了一些更改(例如在某个文件中重新打开标准输出),这些更改对 dll 代码是否有效?
谢谢
c - 如何以及在何处调用外部定义的结构
文件:元素.h
我在 element.h 和 element.c 中声明并定义了一个结构Element
(未显示,但在其中执行了 malloc)。
文件的功能之一parser.c
应该是访问Element
. 如果某些条件适用,Element
则会创建一个新指针,并填充其中一个指针属性。之后的一些迭代,如果其他条件适用,另一个指针属性会得到一些文本。然后,当满足其他一些条件时,Element
应该将指向的指针传递给另一个文件的函数:output.c
.
我的问题是:我应该如何以及在哪里打电话Element
。如果在条件内创建指向它的指针,则if
它是那里的自动变量。迭代函数时不可见。
我可以声明它static
,但编译器返回错误error: 'e' undeclared (first use in this function)
。if
例如:在迭代 1 中,指针在语句的一个分支中创建;在迭代 2 中,访问了另一个分支,if
我做了类似的事情e->etag = "a";
如果我声明,在(第一个)extern Element * e;
的第二个分支中会出现相同的错误。if
else if
文件输出.c
文件解析器.c
c++ - 未解析的外部符号“std::basic_string”
我正在尝试通过 Visual C++ 编译器使用 Maven 编译一个项目,并且我不断收到关于 std::basic_string 类的链接错误。我确保将 <string> 头文件包含到相应的 c++ 文件中。
我错过了什么还是我犯了一个愚蠢的错误???请让我知道我哪里出错了。
gcc - gcc 未定义 _cxa_pure_virtual
我有 2 个共享对象库和一个可执行文件。
我编译的 1 个库有链接错误:Undefined _cxa_pure_virtual
.
为什么?通常我们不需要实现它。有任何想法吗?
如果我实现它,libs 编译和链接都可以,但是链接到两者的应用程序有相同的链接问题?
c++ - 未定义的引用错误对我没有任何意义
我在这里有这段代码:
Main.cpp
和我的班级:
AStarPlanner.h
AStarPlanner.cpp
我看不出我有任何错误。该函数已定义,我的 main.cpp 知道该类。
制作清单
但我收到此错误:
未定义对vtable for AStarPlanner'**
** undefined reference to
AStarPlanner::~AStarPlanner()' 的引用
c - 如何在没有外部链接的情况下在翻译单元之间共享一组内部函数?
假设您正在编写一个库,并且您有一堆为自己编写的实用程序函数。当然,您不希望这些函数具有外部链接,以免您的图书馆用户混淆它们(主要是因为您不会告诉外界它们的存在)
另一方面,这些函数可能在不同的翻译单元中使用,因此您希望它们在内部共享。
让我们举个例子。你有一个库可以做一些事情,并且在不同的源文件中你可能需要copy_file
and create_directory
,所以你可以将它们实现为实用函数。
为了确保您的库的用户不会因为具有相同名称的函数而意外收到链接错误,我可以考虑以下解决方案:
- 可怕的方法:将函数复制粘贴到每个使用它们的文件中,并添加
static
到它们的声明中。 - 不是一个好方法:将它们写为宏。我喜欢宏,但这不在这里。
- 给他们一个奇怪的名字,这样用户产生相同名字的机会就足够小了。这可能有效,但它使使用它们的代码非常难看。
- 我目前所做的:将它们作为
static
函数写入内部utils.h
文件,并将该文件包含在源文件中。
现在最后一个选项几乎可以正常工作,除了它有一个问题:如果你不使用其中一个函数,至少你会收到一个警告(说函数声明为静态但从未使用过)。叫我疯了,但我保持我的代码警告免费。
我采取的做法是这样的:
实用程序.h:
文件1.c:
文件2.c
然而,这种方法的问题在于,随着更多实用程序的引入,它开始变得丑陋。想象一下,如果你有10个这样的函数,你需要在include之前有7~8行define,如果你需要7~8个这样的函数!
当然,另一种方法是使用DONT_USE_*
排除函数的宏类型,但是对于使用很少这些实用函数的文件,您需要大量定义。
无论哪种方式,它看起来都不优雅。
我的问题是,您如何拥有自己的库内部的功能,供多个翻译单元使用,并避免外部链接?