fatal error LNK1120: xxxx unresolved externals

fatal error LNK1120: 1 unresolved externals Debug/11.exe : fatal error LNK1120: 1 unresolved externals解决办法: 这是调用动态库出现的问题,分两类。第一类是本工程的编译环境设置问题,另一类是库文件出问题。 libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Windows项目要使用Win... 阅读详情

场景:
A项目Library,编译环境VS2008+DDKWarizd, 编译平台WIN7XP;
B项目驱动, 编译环境VS2008,编译平台Rlease32位,DDK版本相同,都是7.0

在B项目集成A项目的32位LIB库时,出现此错误,看错误很常见的找不到符号函数的实现代码,实际是DDK7.0 BUILD环境隐藏的bug;

2>Compiling resources...
2>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
2>Copyright (C) Microsoft Corporation.  All rights reserved.
2>Linking...
2>xxxx.lib(xxxx.obj) : error LNK2001: unresolved external symbol __SEH_epilog4_GS
2>xxxx.lib(xxxx.obj) : error LNK2001: unresolved external symbol __SEH_epilog4_GS
2>xxxx.lib(xxxx.obj) : error LNK2001: unresolved external symbol __except_handler4
2>
2>fatal error LNK1120:  unresolved externals
2>xxxx - 18 error(s), 1 warning(s)
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========

因为A项目是通过DDKWarizd生成的驱动LIB,顺着ddkbuild.cmd脚本跟踪到,最终调用的是DDK目录下面的bin\setenv.bat文件,在文件中有这么一句条件判断,如果编译的平台是WinXP则不会设置BUFFER_OVERFLOW_CHECKS这个环境变量,这个变量也可以用来控制编译器的GS开关;
在这里插入图片描述

A项目的source文件中没有定义任何编译器选项,但默认GS是开启的,尽管目标平台选择的是WinXP;

最好只能在source中增加一行,来关闭GS功能
USER_C_FLAGS=/GS-

随后编译的A项目LIB中没有引用GS相关函数了,B项目也可以顺利编译成功;

解决方案如下:

  • 在B项目中修改ntoskrnl.lib引用平台,改为DDK安装目录\lib\win7\i386,因为这个版本才导出GS相关符号
  • 在A项目中关闭GS功能,因为A、B项目32位环境都引用的DDK\lib\wxp\i386下的nt内核,两个项目都需要关闭GS保护,由于A项目使用方DDKWarizd生成,需要在sources文件中定义编译器选项USER_C_FLAGS=/GS-来关闭GS;
头歌 DNS协议分析第3关----DNS 报文分析 DNS 报文分析 阅读详情

相关推荐

手把手拆解固态电池成本:2030年真能比液态电池便宜30%吗?

本文深度解析固态电池成本结构,探讨2030年实现比液态电池便宜30%的可行性路径。通过拆解正极材料、负极材料和固态电解质的成本演变,分析关键技术对降本的影响,并预测产业链协同效应下的成本优化趋势。文章指出,在材料创新、设备国产化和政策支持等多重因素推动下,固态电池有望在2030年实现显著降本目标。

kite3的博客 403

fatal error LNK1120: 1 个无法解析的外部命令 的解决办法

question: vs2012编c程序的时候,出现了fatal error LNK1120: 1 个无法解析的外部命令 但是编译的时候是没有任何问题的 Answer: 没有写主函数,所以你能进行编译的时候通过,而进行最终ctrl+f5的时候会出现这个问题。 参考了百度的结果,受到的启发(侵删) 如果按照我这样做,没有解决,可以看下边的这个答案 这个问题的原因是有头文件,但是找不到实现。 有两个原因:1.只包含了头文件,只有这个函数的声明,没有包含这个函数的实现(实现一般放在cpp文件中的)。所以只

高欣的博客 2万+

Linux系统下Materials Studio 2020安装避坑指南:从依赖包到许可证配置全流程

本文提供了一份在Linux系统上安装Materials Studio 2020的深度避坑指南。详细解析了从系统依赖包检查、安装流程、许可证配置到Gateway服务部署的全过程,并分享了与Slurm作业调度系统集成的实战经验,旨在帮助用户高效、稳定地完成部署。

weixin_29313547的博客 387

error LNK1120: 1 个无法解析的外部命令。

3.代码中只含有头文件,把函数声明和实现都放在了头文件(.h)文件中,一般声明放在.h文件,实现放在同名的.cpp文件中。这种情况一般会通过编译,但是在链接的时候会报错误。2.代码含有头文件,但是找不到你头文件中的函数的实现。1.main函数写错:写成mian等。

qq_39921135的博客 3487

构建面向嵌入式Linux的ARM64交叉编译工具链:从sysroot配置到CMake实战

本文详细介绍了如何构建面向嵌入式Linux的ARM64交叉编译工具链,从sysroot配置到CMake实战。通过分步指导,帮助开发者解决架构不一致问题,提升编译效率,特别适用于树莓派等ARM64设备开发。文章涵盖sysroot机制、环境搭建、CMake配置及常见问题解决方案,是嵌入式开发的实用指南。

weixin_42537142的博客 199

火山引擎之火山方舟知识库+OpenWebUI,搭建独属于自己的AI智能客服

创建接入点,接入点名称可按个人需求而定,比如Doubao-1.5-pro-32k,在添加模型选择Doubao-1.5-pro-32k,点击确定(PS:有些模型不支持知识库,若发现后续无法选择,请重新创建推理接入点。选择应用广场,创建零代码应用,在创建好的应用设置内编辑相关信息,并选择推理接入点,即先前建好的推理接入点;此处的模型名称是火山的模型ID名称,可在OpenWebUI设置-模型 中修改名称。至此所需的apikey和模型ID和请求的api地址(可选配置,非本文重点参数)。进入火山官网,注册账号。

AmaZInGvCH的博客 2651

错误 LNK1120

错误 LNK1120 为您提供该链接的无法解析的外部对象数 (number)。导致无法解析的外部对象的条件由错误 LNK2001 描述,此错误出现在该错误信息之前(对每个无法解析的外部对象都出现一次)。 //就是说每出现一次LNK1120都会在之前出现一个LNK2001 所以主要是解决LNK1120关键是要解决链接器工具错误 LNK2001 这分一下的情况(来自VS 2008的帮助),在这

持续学习,刻意练习 4614

c语言中1120是什么错误,C++编译常见问题汇总(二)fatal error LNK1120 错误

(二)、fatal error LNK1120 错误这是工程的类型选择错误引起的。如在VC中,1.本来应该选择"Win32ConsoleApplication",而错误选择了"Win32Application"。2.使用了MFC的类,而选择"工程"的"设置"不使用MFC库编译。改正的方法有:1.选择"工程"->"设置"->连接,在底部的编辑窗口中,找到"/subsyste...

weixin_29973493的博客 7026

【SpringBoot 4.x 第2节】夯爆了,学习 Spring Boot 4.x 前,需要具备哪些 Java 基础?

🏆 本文收录于 《滚雪球学 Spring Boot 4.x》 专栏。 本专栏面向 有一点 Java 基础,但没有系统学过 Spring Boot 的读者,采用“滚雪球式学习法”:先跑通、再理解、再重构、再上线,最终带你从第一个 Hello API 一路完成一个可部署、可监控、可扩展的后端项目。

**My Coding Family** 4568

用Obsidian搭建个人知识库:AI时代如何构建你的第二大脑

AI 时代,真正有价值的不只是获取知识,而是沉淀属于自己的知识体系。本文从 Obsidian 安装、目录设计、双向链接、插件推荐到 AI 联动、多端同步,手把手教你打造高效、可持续进化的个人知识库,让知识真正为你所用。🧠

XiaoqiangClub的博客 467

出现fatal error LNK1120: 1 unresolved externals的原因

Error        5        error LNK1120: 3 unresolved externals        D:\Code\simpleTest-mqo\Debug\simpleTest-mqo.exe        1        1        simpleTest-mqo Error        4        error LNK2019: unres

todayq的专栏 1万+

MuJoCo XLA (MJX) 强化学习人形机器人四足机器人入门教程(三)

MJX 是用 JAX 编写的 MuJoCo 实现,可以在 GPU/TPU 上进行大批量训练。在本笔记本中,我们将演示如何使用 MJX 训练 RL 策略。在开始大量 RL 工作负载之前,我们先从一个简单的示例开始!xml = """"""接下来,我们使用 MJX 将 MuJoCo 模型和数据放到 GPU 设备上。下面,我们将打印来自 MuJoCo 和 MJX 的 qpos。

2506_90492529的博客 2472

lnk1120如何解决_fatal error LNK1120: 6 unresolved externals问题怎么解决?

1. 头文件:TextQuery.h代码如下:#ifndef TEXTQUERY_H#define TEXTQUERY_H#include #include #include #include #include #include #include using namespace std;class TextQuery{public://类型别名typedef string::size_type s...

weixin_36048031的博客 1374

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

fatal error LNK1120: 2 unresolved externals解决办法

程序设计到多线程,VC++6.0默认设置可作以下修改: project->settings->C/C++->Category中选Code Generation->Use Run-time Library选Debug MultiThreaded或MultiThreaded 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接

vip4677的专栏 3862

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

fatal error LNK1120_ 3 unresolved externals

既然Visual Studio中可以正常使用,那么把它的环境变量拿过来,自己的命令行中也可以正常使用。这些符号或函数引用是在 LIBCMT.lib 库文件中定义的,将其添加到。结尾添加上分号直接粘贴到include环境变量中。把Visual Studio中的环境变量拿过来。,而没有将对应的lib文件路径加入到工程中。lib目录也采用这种方式来进行查找复制和粘贴。CMT.lib找不到了,也可以正常编译了。编辑好的lib环境变量。手动指定lib库的位置。很可能是工程中引用了。

u014723479的博客 1250

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

解决 fatal error LNK1120: 1 unresolved externals 问题

Bug: fatal error LNK1120: 1 unresolved externals 开发环境: Microsoft Visual C++ 6.0 测试项目的时候遇到的问题,原因是,声明了函数但是找不到定义的代码块。 检查一下声明函数的模块和定义函数的模块就好了。 ...

BeJav 5120

fatal error LNK1120: 3 unresolved externals错误处理

用vs2005写c++项目,定义了AList类,在AList.h中写了类定义,有3个函数不是inline的,定义写在了AList.cpp中。但每次编译项目,那3个函数便报错DataStruct.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall AList::insert(int co

岳麓听雨专栏 1万+

fatal error LNK1120: 2 unresolved externals及主函数调用外部函数

主函数中调用外部文件定义的函数,两种方法: 第一种: htest.cpp: #include "stdafx.h" #include "stdio.h" extern void b(void); extern void c(void); int main(int argc, char* argv[]) { printf("Welcome to main.\n"); b();

Embedded Travel 4672

c/c++出现:fatal error LNK 1120:1 unresolved externals

以前的运行的c程序今天报以下错误: error LNK2001: unresolved external symbol _WinMain@16 debug/main.exe:fatal error LNK 1120:1 unresolved externals   解决方法: 1.进入工程->设置->c/c++, 在分类中选择预处理器,在预处理器定义中删除_WINDOWS,并添加_CO

andQ的博客 4712

[C++]VC 6.0 fatal error LNK1120: 1 unresolved externals

[C++]VC 6.0 fatal error LNK1120: 1 unresolved externals 在project -> settings -> link -> project options里,把project设置中的/subsys...

aezympxj84131的博客 1247

error LNK2001: unresolved external symbol _WinMain@16 和 fatal error LNK1120: 1 unresolved externals错误

Win32 Application和Win32 Console Application都是工作在32位Windows环境的程序。其中Win32 Application就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的、不规则形状的……它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点击来完成控制。而Win32 Console A

AbnormalCoder的专栏 2037

vc 6.0 中 error LNK2001: unresolved external symbol _main和fatal error LNK1120: 1 unresolved externals的解决

今天编程 windows应用程序 一直调试到最后出现了   LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main      Debug/Point.exe : fatal error LNK1120: 1 unresolved externals的错误,不知道是为什么,自己弄不明白,就百度 百度上的高手是很多,

haibianfeng的专栏 1914
上一篇: fatal error C1001: An internal error has occurred in the compiler
下一篇: RtlUpcaseUnicodeString转换大写后,Buffer丢失NULL结束符,传入垃圾字符
FFE4
博客等级 码龄9年 234粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值