目录
频道首页
C++大作业,生成lib后无法执行,存在链接错误不知道如何解决
收藏
0
ppp3189 最近修改于 2023-05-27 20:20:27
详情

在做一个C++的扫雷大作业,希望可以把功能函数和类都打包在lib内,Engine就是生成lib的,然后Game生成exe,里面包含main函数image.png这是Engine.h有一些宏定义,头文件,定义了Player类还有两个函数

image.pngEngine.cpp里面有两个函数的实现image.pngmain.cpp包含了对lib的引用,然后调用了里面的函数,且无语法报错image.png但是无论是F5运行和生成exe有LINK报错,不知道怎么修改呜呜呜,救救孩子吧😭

image.png

('一开始的lib生成问题解决了,成功生成了Engine.lib,我在Game中加上了对Engine的引用,也在属性中包含了lib,加上了#pragma comment(lib, "Engine.lib")\n\n编译没有报错,但是链接有两个报错不知道怎么修改\n',) 感觉应该是项目的设置出了什么问题,我现在使用的是VS2022,第一次做大作业,没有什么经验,不知道这方面的bug怎么修改。也许也不是设置的问题…

+1 -1
5人
0人
邀请回答
添加回答
添加回答
邀请回答
回答
共(3)个回答 排序
Taurus 2023年05月27日

和楼上的答案一样,应该是lib导入问题!

可以试试用 vc++ 导入的方式:

  • 项目右键选择属性->VC++ 目录->库目录->选择包含需要引用的 .lib 文件夹

  • 项目右键选择属性->VC++ 目录->包含目录->选择包含需要引用的 .h 头文件文件夹

image.png

image.png

ppp3189 2023-05-27 20:14:29
尝试了还是没有用哎,我开始就用vs加了对Engine的引用,后来又在Game.cpp加上#pragma comment(lib, "Engine.lib"),刚才在VC++导入了还是不行。报错显示的是 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2005 "int (* arr)[12]" (?arr@@3PAY0M@HA) 已经在 Game.obj 中定义 球球大佬帮忙看看
回复 ppp3189
添加回复
ll596214569 2023年05月27日

include 只是引用头文件,engine.lib你生成并添加到Game里了吗

ppp3189 2023-05-27 20:19:37
已经生成添加了
回复 ppp3189
添加回复
Puppetlover 2023年05月27日

“无法解析外部符号”,这是因为main函数中调用的GameInit和Drawmap没有找到函数定义!!

看了下你的项目结构,感觉是导入Engine.lib有问题,你只是 include "engine.h" 引入头文件而已,定义没引入!

可以试试添加 #pragma comment(lib, "Engine.lib"),表示引入定义

ppp3189 2023-05-27 16:11:01
真的不会了呜呜呜😭
回复 ppp3189
ppp3189 2023-05-27 16:10:35
它现在变成了这两个报错 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2005 "class IMAGE * img" (?img@@3PAVIMAGE@@A) 已经在 Game.obj 中定义 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2005 "int (* arr)[12]" (?arr@@3PAY0M@HA) 已经在 Game.obj 中定义
回复 ppp3189
添加回复
QuestionBot
z
z
z
z
AI文档
会议室
Git管理
云文档
看板