问题标签 [linker-errors]

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 投票
4 回答
533 浏览

c++ - C++ GNU 链接器错误

我正在尝试使用编译命令通过 Cygwin 在 Windows 上编译我的程序:

我正在使用一个名为 ChartDirector 的 API 为我绘制图表。我以前从来没有以这种方式链接库(通常我是通过 Visual Studio 来做的),所以我对此有点陌生。我有一个非常大的错误列表,所以我不会全部列出,但我会列出一个只是为了澄清我得到的链接器错误的类型:

所有这些都是对“xxx”错误的未定义引用。

我在 ./include 中有一堆头文件,在 ./lib 中有一个名为 chartdir50.lib 的库

我的编译行有什么问题?

0 投票
2 回答
395 浏览

c++ - 是否有自动程序来查找 C++ 链接器错误?

我正在使用 GCC 编译器在 C++ 的 Linux 环境中工作。

我目前正在修改和升级大量预先存在的代码。作为其中的一部分,有必要在各个地方的整个代码中添加大量小引用以将事物链接在一起,并且还需要添加几个新的外部代码库。还有一个相当大且复杂的 Makefile 结构,链接到 configure.ac 文件来处理构建过程。

在开始构建过程时,一切都可以顺利编译,但是在尝试使用我们创建的新添加的自定义代码库时,会出现可怕的链接器错误。我们现在已经通过大量的代码,用细齿梳寻找拼写不匹配,检查所有库包含在构建过​​程中的顺序,并检查创建的 .o 文件是否包含我们使用转储所需的内容,以及一切都在他们应该在的地方。我们还单独测试了这个库,问题绝对不在那里。

简而言之,我们已经尝试了在这些情况下通常应该做的大多数事情。

是否有一个 C++ 工具可以自动检测链接器错误,类似于 cppcheck 或 splint(我们都运行无济于事),可以在这里提供帮助?

0 投票
1 回答
497 浏览

objective-c - 如何添加库以链接 iPhone SDK 中的 OpenGL 框架?

我正在尝试研究 OpenGL 并添加了框架,但出现链接器错误。我相信问题是将库添加到项目中以进行链接,每次我尝试添加库时,我都会永远寻找配置设置。有人,请给我一个简单的点击-n-go答案!

0 投票
3 回答
8195 浏览

c++ - 链接器错误“未解析的外部符号”:使用模板

我有一个基于模板的类 [Allotter.h & Allotter.cpp]:

它的用法显示为[ActiveListener.h & ActiveListener.cpp]:

我没有展示完整的定义,因为它并不重要。问题是当我编译时,所有文件都能正确编译。这些文件位于 VC++ 项目中。早些时候,当我没有使用基于模板的方法时Allotter,一切都可以正常编译和链接。但是现在,我收到了这个错误:

令人惊讶的是,构造函数ActiveListener::ActiveListener()根本没有做任何引用Allotter<QTcpSocket>::Allotter()。然而,第二个参考确实存在。但我不明白为什么链接器无法解析这个外部符号。

错误出现之前的构建输出是:

我不明白这是否相关,主要是因为以前所有这些都可以完美运行。只是我使用模板后出现问题。任何帮助将不胜感激。非常感谢。

0 投票
2 回答
5818 浏览

c++ - g++ 链接器错误:获取 std::hash 的未定义引用错误

我在我的代码中使用 TR1 实现的 unordered_map 并且链接器给出了我什至无法破译的奇怪错误:

这是错误,我什至无法检测到它的方向?从声明中:

对`std::hash::operator()(DottedRule) const'的未定义引用

我想这与哈希的使用有关。现在,整个代码太大了(如果您仍然想看,我可能会稍后发布),但相关部分是:

我包含的最后一行是唯一使用哈希的地方。知道会发生什么吗?

非常感谢, Onur

0 投票
7 回答
900 浏览

c++ - 使用 g++ 编译 C 和 C++ 代码时出现链接错误

我正在将用 C 编写的中型(10,000 行左右)程序集成到 C++ 程序中。我创建了一个新类,BWAGenome作为 C 代码的接口,因此对 C 函数的任何访问都被封装。我正在用g++编译器编译所有东西。.o 文件都是正确生成的,但是当我尝试将它们链接到最终的可执行文件中时,编译器会抱怨它找不到符号。这是我收到的错误消息:

这些函数都在我制作的C++类中。它们将函数包装在 C 代码中,但我完全不明白符号是如何未定义的。

关于代码的一些细节以及我到目前为止所做的事情:

  • 一切都是用 编译的g++,所以如果我理解正确,我不需要extern "C" {};包含我包含的 c 头文件。
  • 所有代码都可以单独正确编译。该错误仅在链接期间发生。
  • 我在某处听说可能需要从静态函数调用 C 代码,所以我尝试将每个对 C 函数的调用包装在静态类方法中并调用它。

关于如何解决这个问题的任何想法?


编辑:添加了 BWTRestoreBWT 和 GetMatches 的定义和声明

第二次编辑:经过深思熟虑后,我意识到这个问题与我认为的大部分问题无关。有关详细信息,请参阅我的答案。

0 投票
4 回答
1518 浏览

c - 在 SunOS 上编译时 strerror_r 导致错误(C 编程)

我有一个 C 程序,它在 Linux 下编译和运行良好,没有任何警告,但是当试图在 SunOS 上编译它时,我收到以下警告:

有任何想法吗?

0 投票
1 回答
2332 浏览

c++ - xerces-c++ compile/linking question

After installing Xerces-C++ (XML library):

And writing the simple program (xmlval.cpp):

And compiling:

The compile result is a bunch of lines like:

Any thoughts on this?

0 投票
2 回答
532 浏览

gcc - 来自 ld 的“未定义引用”错误

这并不像标题可能让您认为的那样天真。

对于第三方共享库中的几个函数符号,我从链接器/ld 收到“未定义引用”错误,我正在尝试与我的可执行文件链接。

奇怪的是,该库本身应该包含有问题的违规符号的定义。

奇怪的是我的项目中有几个可执行文件,有些面临这个问题,有些则没有。

我搞砸了我的 gcc/ld 标志还是别的什么?

0 投票
2 回答
2000 浏览

templates - Dev-C++ 中的多个文件,链接器错误。模板

我很抱歉我很确定这是一个相当愚蠢的问题,但我无法让它发挥作用!

我也不确定什么信息是太多信息,所以我可能不会提供足够的信息,所以也很抱歉 - 问一下。

我开始在 main.cpp 中编写一个类,它变得很大,所以我决定将它转移到另一个源文件。我不太确定如何做到这一点,也想不出任何东西来帮助从互联网资源中解决这个特定问题(因此问)。

我从类定义开始,包括主程序函数之上的所有函数定义。这运行良好。然后我把它分成两个独立的部分。主函数上方的类声明(我认为这是正确的术语)和主函数下方的函数定义。

这也运行得很好。我继续将类声明剪切到头文件中。这个头文件的形式是

我在某处读过的内容很有用,但我不完全确定为什么,我认为如果标题包含多次,则停止重新声明函数。

所以目前我们将这个头文件与其他包含一起包含在内。然后是 main 函数,然后是 main 函数下面的函数定义。这也可以很好地编译和运行。

我采取的下一步是将函数定义剪切到它们自己单独的 .cpp 文件中。对该 .cpp 文件所做的唯一添加是必须将一些额外的包含添加到顶部(特别是 iostream 和 cstdlib)。还包括 matrix.h 文件。

在此配置中,当我尝试编译和运行代码时,Dev-C++ 会引发链接器错误。具体来说,它们的形式是

[链接器错误] 未定义的引用matrix <bool>::matrix(int, int)

并且代码没有运行(显然)。我怎样才能解决这个问题?提前致谢。

编辑:已经发现这是因为它是一个模板类,并且在 matrix.cpp 文件的范围内,模板没有被引入 bool 类型。我现在想弄清楚如何在不添加大量代码来单独使每个函数接受每种给定类型的情况下解决此问题。哦,我很感激我可以在标题中定义函数。但我认为我们不应该这样做?我认为这个想法是您只需包含声明。