【问题记录】VS2019编译ARM64 dll工程只生成dll未生成lib导出库

一,问题现象

在使用VS2019动态链接库工程编译ARM64的dll时,只生成dll文件,没有生成导出库lib:

使用工程模板:
在这里插入图片描述
生成文件只有dll,没有lib:
在这里插入图片描述

二,问题原因

未定义导出函数:如果动态链接库中没有导出的函数或符号,Visual Studio可能不会生成导入库。确保在动态链接库中正确地声明了需要导出的函数或符号,并使用__declspec(dllexport)进行标记。

三,解决方法

3.1,在头文件中添加函数导出符号

#ifndef CALCULATOR_H
#define CALCULATOR_H

#ifdef __cplusplus
extern "C" {
#endif

#define CALCULATOR_EXPORTS

#ifdef CALCULATOR_EXPORTS
#define CALCULATOR_API __declspec(dllexport)
#else
#define CALCULATOR_API __declspec(dllimport)
#endif

	CALCULATOR_API int add(int a, int b);
	CALCULATOR_API int subtract(int a, int b);
	CALCULATOR_API int multiply(int a, int b);
	CALCULATOR_API float divide(int a, int b);

#ifdef __cplusplus
} 
#endif

#endif /* CALCULATOR_H */#pragma once

3.2,检查头文件包含,确认.h文件被.c文件包含,能够被正确编译到库中

在这里插入图片描述

3.3,重新编译,确认已经生成导出lib库

在这里插入图片描述

3.4,使用dumpbin查看库的类型和导出符号

查看库类型:

//查看库的类型
dumpbin /headers xxx.dll

在这里插入图片描述

查看导出符号:

//查看导出符号
dumpbin /exports xxx.dll

在这里插入图片描述
至此,ARM64的dll库编译完成。欢迎一起讨论交流~

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音频金钟小赵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值