问题标签 [linker-warning]

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 投票
1 回答
1308 浏览

ios - Xcode 8.3 链接器警告

在提交给 Apple 之前尝试存档应用程序。超出警告限制 - 仅显示前 200 个警告。示例警告:

使用 Xcode 8.3.3。Swift 3. 相关的 Firebase pod 条目:

不久前我遇到了这个问题,Firebase 3.16 似乎已经修复了它,但现在警告又回来了。警告仅在存档上出现。还有其他人重温这种情况吗?

0 投票
0 回答
1019 浏览

c++ - 链接器警告 lnk4199

VS2010 Ultimate,原生 C++,x64 调试;win7 64位下。

我在我的应用程序中收到此链接器警告:LNK4199: /DELAYLOAD:xxx.dll 被忽略:没有从 xxx.dll 找到导入

  • 我在调试器中看到我成功地从 xxx.dll 调用函数
  • 我给链接器适当的 xxx.lib
  • 我试过属性->链接器->输入->延迟加载的DLL->编辑->取消选中“从父级或项目默认值继承”-它没有帮助。

有什么解决办法?谢谢你。

0 投票
1 回答
3145 浏览

c++ - 包含具有相同函数名的两个库时,链接器警告“忽略第二个定义”

语境

我正在开发一个旨在向设备发送某些命令的项目。每个设备都可以连接一个 dll(例如 deviceADll.h、deviceBDll.h),而这些 Dll 不是我编写的,我也不能以任何方式修改它们。我负责将 DeviceB 集成到项目中,对项目结构的改动很小。我知道结构可能不是最佳的和/或设计良好的,所以我愿意就此问题提出建议作为最后的解决方案。

由于设备非常相似,所有 Dll 函数都具有相同的名称,并且通常具有相同的原型。

也正因为如此,我创建了一个父类(Device_ts.h),DeviceA_ts.h 和 DeviceB_ts.h 从中继承(我也有一个用于设备的工厂类,但我认为它与我的问题无关) .

问题

当我尝试包含两个 Dll 时出现问题:项目编译,但我得到一个

Warning 60 warning LNK4006: Connect@12 already defined in DeviceA.lib(DeviceA.dll); second definition ignored C:\project_path\DeviceB.lib(DeviceB.dll) Project_Name

其次是

Warning 61 warning LNK4006: __imp__Connect@12 already defined in DeviceA.lib(DeviceA.dll); second definition ignored C:\project_path\DeviceB.lib(DeviceB.dll) Project_Name

和一个

Warning 62 warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library C:\project_path\DeviceB.lib(DeviceB.dll) Project_Name

有没有人遇到过类似的情况?DeviceB.h我应该忽略这些警告还是因为它们的定义被忽略而无法调用函数?

我正在使用 Visual Studio 2010,Device_ts.h我正在编写的库是一个静态库,并且所有项目的参数(例如 /MD、包含目录、依赖项、MFC 等)都是根据我在针对这个问题的研究中发现的正确设置的。

代码

包含和代码如下所示(我将只显示导致警告的函数之一,因为我在 50 个函数上遇到相同的错误):

设备ADll.h

设备BDll.h

设备_ts.h

0 投票
1 回答
531 浏览

ios - ADAL iOS:类别中的实例方法覆盖类中的方法(链接器警告)

我的设置:

我在我的 iOS 项目中通过 cocoapods使用ADAL 。

Xcode:9.2

阿达尔:2.5.4

令人担忧的毁灭性警告:

构建时,我收到此警告:

/Users/user/Library/Developer/Xcode/DerivedData/Mobile-echesuhdqeeauvgypmfgbpnmnsjl/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/ADAL.build/Objects-normal/x86_64/ADTokenCacheItem 类别中的实例方法“speInfo” +Internal.o 覆盖 /Users/user/Library/Developer/Xcode/DerivedData/Mobile-echesuhdqeeauvgypmfgbpnmnsjl/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/ADAL.build/Objects-normal/x86_64/ 类中的方法ADTokenCacheItem.o

祸不单行!

我尝试清理派生数据文件夹并在 Xcode 中进行清理,但没有帮助。我还将 ADAL 从 2.5.2 更新到 2.5.4(pod 安装),它也没有帮助。

0 投票
0 回答
91 浏览

c++ - C++ 是否有等效的 link_warning(symbol) ?

是否可以定义一个可以干净编译但在使用时会产生警告消息的 C++ 类方法,其方式类似于未实现的 C 库函数?就像是:

一个__attribute__((deprecated))或更新的[[deprecated]]属性具有正确的功能(如果没有其他选项,我将使用该功能),但我想避免告诉用户frobnicate由于 XYZ 原因实际上无法实现它时已弃用。

AC 代码示例(来自glibc):

该宏给出的警告如下所示(这是使用它的代码示例):

/path/to/file.o:在函数“符号”中:

/path/to/file.c:line: 警告:味精

天真link_warning(MyClass::frobnicate, "function not implemented")的似乎不起作用,查找和使用修饰名称似乎很笨拙且不可移植(我不确定它是否真的有效)。

0 投票
0 回答
3993 浏览

c++ - Clang 警告:链接器输入未使用

使用 Jansson JSON 库编译 C++ 项目时,我收到来自 clang 的警告消息。

我想摆脱它,但我真的不知道是什么原因造成的。

这是有问题的CMake

0 投票
1 回答
1162 浏览

macos - 链接器存根文件警告

几天来,无论何时gcc或被go调用,系统都会抛出以下警告(macOS High Sierra 10.13.5):

ld: warning: text-based stub file /System/Library/Frameworks//Security.framework/Security.tbd and library file /System/Library/Frameworks//Security.framework/Security are out of sync. Falling back to library file for linking

我感觉某些go软件包 的安装go get可能更改了上述目录中的某些文件,但我无法验证这一点。

有没有办法正确确定消息的原因?

0 投票
7 回答
18582 浏览

r - ld:警告:基于文本的存根文件不同步。回退到库文件进行链接

当我尝试时sourceCpp,它会发出警告:

ld:警告:基于文本的存根文件 /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbd 和库文件 /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation 不同步。回退到库文件进行链接。

但该功能确实有效。只是想知道如何解决这个警告。

0 投票
0 回答
386 浏览

c++ - 类模板的 C++ 静态成员——链接器警告“多重定义”

假设出于某种原因,我想要一个带有一些静态数据成员 smDummyVar 的类模板 MyTemp :

我的临时文件

我的临时文件

由于编译器要求模板的定义和声明在同一个地方,所以我将 MyTemp.cpp 包含在 MyTemp.h 中。

现在:我想在很多地方使用 MyTemp 并使用模板创建对象:

案例1.cpp

案例2.cpp

我不会从编译器收到任何错误,但我会从链接器收到警告:

问题:我怎样才能摆脱这个警告?

非常感谢您的帮助!

=====================================

受此线程中的一个答案启发为什么模板只能在头文件中实现? 我找到了以下解决方案:

一世。#include "MyTemp.cpp"在 MyTemp.h 中删除

ii. 专门的.h

iii. 专门的.cpp

iv. 将specialized.cpp 提供给cmake 文件

v. 在 case1.cpp 和 case2.cpp 中包含 specilized.h

链接器发出的“多重定义”警告将消失。

谢谢你们的帮助!

0 投票
0 回答
24 浏览

c++ - 使用 Microsoft Visual Studio 2015 Community 和 Allegro5 Nuget 包无法解析的外部符号

我了解链接器错误如何在程序中工作/形成,但无法弄清楚我正在使用的库如何未正确链接到我的代码。我使用 NuGet 安装,所以它自动安装和设置,我包含了我需要的内容,如下所示,但它仍然没有链接。

有关更多信息,我正在使用 Allegro 5 和 MSVS 2015 社区版制作游戏,在该项目中,我目前有 Main.cpp、GameManager.h 和 .cpp,以及 PhysicsObject.h 和 .cpp 文件,其中有什么除了添加某些东西的顺序(例如#include 放置)之外,对于这个链接问题并不重要,但这个问题即使在下面的 allegro wiki 站点上显示的基本教程程序中也存在(我在我的游戏中与该程序具有相同的配置,并且两者都得到与 Allegro 函数有关的相同链接错误)。

教程链接:https ://wiki.allegro.cc/index.php?title=Windows,_Visual_Studio_2015_and_Nuget_Allegro_5

我已经使用上面发布的教程中给出的确切示例设置了一个基本程序,但仍然得到未解析的外部符号(与其中的 Allegro 函数有关)。我不知道 Allegro 或 Visual Studio 的旧安装是否会导致此错误(因为我以前安装过两者,但试图摆脱与它们有关的所有文件),但我将链接我的截图'已经完成了,我从输出中得到了什么,以使这一点更清楚。(我没有 10 声望来正确发布图片,因为这是我的第一篇文章,但我确实有轻拍截图)

输出窗口: http: //prntscr.com/kpvhjn
加载项活动: http: //prntscr.com/kpvi83

我在名为 GameManager.h 的头文件的顶部也有这个(链接器无法解析函数的文件)。

我只是无法弄清楚为什么这没有正确链接,任何见解或帮助将不胜感激。如果您需要任何其他信息来解决这个问题,我很乐意发布。