问题标签 [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 回答
5041 浏览

c - 尝试一起编译多个 CUDA 文件时出现链接错误 LNK2005

我有一个运行良好的 CUDA 程序,但目前都写在一个文件中。我想把这个大文件分成几个小文件,以便于维护和导航。

新结构是:

.cuh文件包含结构和函数原型,.cu文件包含函数定义(像往常一样)。主文件包括bar.cuhbar.cu包括foo.cuh. 所有 .cu 文件都包含 cutil_inline.h,以便能够使用 CUDA 功能。

因此 :

问题是当我用这个新结构编译我的 Visual Studio 2008 项目时,我得到了大量的链接错误:

我理解它们的意思(所有已经定义的符号都是 cutil_inline.h 的一部分),但我必须在所有文件中包含这个头文件,否则它不会编译。我究竟做错了什么 ?

更新:为了澄清情况: * 将所有代码放在一个大文件中,它可以编译、链接和运行良好 * 使用新结构(几个较小的文件)并在所有 .cu 文件中包括 cutil_inline.h,它编译正确但在将 * 与新结构链接并仅在主文件中包含 cutil_inline.h,它在编译期间失败,说 cutil 函数在不包含 cutil_inline.h 的文件中未知(如预期的那样,但我不得不尝试一切) - 项目清单

0 投票
2 回答
954 浏览

c++ - 编译 boost.asio 示例时出现链接器错误

我正在尝试编译 boost.asio示例,但出现以下链接器错误:“未定义对_Unwind_Resume'" and "undefined reference to__gxx_personality_v0 的引用”。我一直在搜索谷歌很长时间,但没有任何帮助。我需要链接哪个库?提前致谢!

0 投票
2 回答
2184 浏览

c++ - LNK2005 Error when trying to override global new and delete operators

I have a C++ project that has been compiling and linking without problems. Recently we added code to override the global new and delete operators and now the project fails to link with the error:

error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined.

I am aware of MS KB148652 and have done what it suggested -- I've placed Nafxcwd.lib and Libcmtd.lib in the Additional Dependencies and Ignore Specific Libary lists. Actually they were already there since I had to add them to eliminate other previous linker errors. I've made sure that the first include in all .cpp files is stdafx.h (as KB148652 suggests) but nothing seems to work.

If anyone can suggest another approach or some direction I haven't tried I'd appreciate knowing about it. Thanks in advance.

0 投票
2 回答
3737 浏览

c++ - 链接错误:未定义的符号,很多(cpp 交叉编译)

我得到了最后一个链接命令(实际的可执行文件正在被链接),但我得到了一堆未定义的符号(它们在 cpp 中,对我来说看起来很可怕,一个简单的 c 程序员)

- 它可能很简单,但我无法得到我应该作为链接器放置的内容(它在这里使用 gcc ...?这合适吗?g++ 告诉我太多输入文件哈哈)(ld 返回大部分相同)

无论如何这很荒谬,我完全被困住了

感谢您的帮助!

0 投票
4 回答
5404 浏览

visual-c++ - 在 x64 (Visual Studio 2008) 环境中构建 x86 代码?

我想为 x86 构建一个库(poco-1.3.6p2-all,物有所值)。我刚刚设置了一台新的(干净的)Windows 7 64 位机器,并安装了 Visual Studio 2008 Standard。到目前为止,此盒子上的任何安装都没有出现安装错误。

相同的库在安装了 VS 2008 Standard 的 Windows XP 32 位系统上完美构建。哦,是的,这都是非托管 C++。

我得到的错误是项目中各个 DLL 的每个链接。例子:

有问题的库是从 .cmd 文件构建脚本调用的 .vcproj 文件构建的。

编译器选项(命令行)如下所示:

项目选项中的链接器命令行如下所示:

(对我来说)链接器似乎看到了 x86 目标文件,但是即使命令行选项正确,它也在 x64 模式下被调用。

我需要目标是 32 位/x86 类型,而不是 x64。

是否有一些 Visual Studio 选项可以解决此问题?

0 投票
2 回答
2259 浏览

c++ - 对非成员函数的未定义引用 - C++

我在头文件中有以下内容。

在 CPP 文件中(这有适当的包含)

在另一个 CPP 文件中。这已经得到了所有适当的包括。

我收到一个链接器错误,说未定义对load_from_file. 我看不到这里出了什么问题。

任何帮助,将不胜感激。

编译器:G++ 操作系统:Ubuntu 9.10

编辑

这是使用的链接器命令。

错误来自pattern_token_map_tests.o,函数在pattern_token_map.o. 所以我猜链接的顺序并没有造成问题。(我已经从命令中删除了一些文件以简化它)

0 投票
2 回答
4079 浏览

visual-studio - MSVCRTD.lib(cpu_disp.obj) : warning LNK4210: .CRT section exists; there may be unhandled static initializers or terminators

I know this question has popped up before but I could not find a good answer so I try here.

I have a pure C dll (Win32) and I get this warning when compiling:

MSVCRTD.lib(cpu_disp.obj) : warning LNK4210: .CRT section exists; there may be unhandled static initializers or terminators

Everything seems to work just fine but I am concerned about this warning since I do not understad it. I have quite a few static variables but I do not understand what ".CRT section exist" means.

What approach should I take to eliminate this warning. When I try to add the libs msdn suggests I get a ton of linker errors.

0 投票
4 回答
3239 浏览

c++ - 链接器错误,即使我用#ifndef 阻止它们

我收到链接器错误,提示我没有使用#ifndef 和#define。

1>TGALoader.obj:错误 LNK2005:“struct TGA tga”(?tga@@3UTGA@@A) 已在 main.obj 中定义 1>TGALoader.obj:错误 LNK2005:“struct TGAHeader tgaheader”(?tgaheader@@3UTGAHeader @@A) 已在 main.obj 1>TGALoader.obj 中定义:错误 LNK2005:“unsigned char * uTGAcompare”(?uTGAcompare@@3PAEA) 已在 main.obj 1>TGALoader.obj 中定义:错误 LNK2005:“unsigned char * cTGAcompare" (?cTGAcompare@@3PAEA) 已在 main.obj 1>LINK 中定义:警告 LNK4098:defaultlib 'LIBCMTD' 与使用其他库发生冲突;使用 /NODEFAULTLIB:library

我已将 nehe opengl 教程中的头文件 Texture.h 和 tga.h 包含到我的项目中。我有

在我的 tga.h 文件中。如果我不止一次包含这个,我会从上面粘贴的链接器中得到错误。前两个来自 texture.h 虽然情况是一样的。

关于什么是错的任何想法?

0 投票
2 回答
2139 浏览

visual-studio - 如何在使用犰狳的 Visual Studio 2008 项目中使用 LAPACK

我正在尝试使用开源库http://arma.sourceforge.net进行线性代数计算。犰狳中的一些函数如pinv使用 LAPACK。我编写了一段非常简单的代码来使用 Armadillo 计算 pinv,但它会产生运行时错误。这可能是因为我在 sln 文件中没有 LAPACK 链接器标志。

0 投票
3 回答
138 浏览

macos - 初学者的问题,试图了解链接器如何搜索静态库

我有一个工作设置,所有文件都在同一个目录(桌面)中。终端输出是这样的:

文件:

mymath.c:

测试.c:

现在,我将存档 mymath.a 移动到子目录 /temp。我无法使链接正常工作:

我错过了什么?你会推荐什么资源?

更新:感谢您的帮助。所有的答案基本上都是正确的。我在这里写了博客。