当前位置:网站首页>window下VS2022封装静态库以及调用静态库
window下VS2022封装静态库以及调用静态库
2022-08-03 05:24:00 【世宇同学】
一,新建项目MyLib(封装自己的静态库)
1.头文件Test.h:(_declspec(dllexport)要放在导出的类名前面,表示要导出封装到库)
#pragma once
class _declspec(dllexport) Test
{
public:
void say();
};
2.源文件Test.cpp:
#include "Test.h"
#include<iostream>
void Test::say() {
std::cout << "Hello!My name is linyu!" << std::endl;
}
3. 右键项目属性->配置属性->配置类型(修改为静态库.lib):
4.右键生成,会生成静态库
二,新建项目TestMyLib(调用刚才封装好的库)
1.拷贝头文件Test.h到项目的源文件目录下
2.回到项目中,头文件->单击右键->添加现有项Test.h
3.链接器->常规->附加库目录,链接到MyLib.lib所在的目录:
4.链接器->输入->附加依依赖项,添加生成的库名MyLib.lib
5.编写TestMyLib.cpp文件:
#include <iostream>
#include "Test.h"
int main()
{
Test t;
t.say();
}
6.点击运行
产生这个问题的原因是当前工程是Debug版本,而引用的库文件时Release版本。
解决方法一:只需要把当前的Debug模式改成Release模式就可以了。
解决方法二:重新生成一个debug版本的库文件。然后修改链接器--常规--附加库目录。重新包含debug版本库所在的目录。
边栏推荐
猜你喜欢
随机推荐
Oracle 注释详解(--、/**/、rem)
深度学习理论课程第八、九、十章总结
STM32启动文件的选择
php连接数据库脚本
嵌入式实验二
【第一周】深度学习和pytorch基础
mysql 客户端SSL错误2026 (HY000)
中国生物反应器行业发展现状及前景规划分析报告报告2022~2028年
new / malloc / delete / free之间的区别
【第四周】MobileNet和HybridSN
Qlik Sense 判空详解(IsNull)
梯度下降、反向传播
Oracle count(1)、count(*)、count(列) 区别详解
Gradle插件与代理服务器导致Sync Project失败的问题
A.1#【内存管理】——1.1.3 page: struct page
中国食品微生物检测行业深度监测及投资战略规划建议报告2022~2028年
自监督论文阅读笔记 SimCLRV2 Big Self-Supervised Models are Strong Semi-Supervised Learners
Hook初探索
关于梯度下降法的一些优化方法
自监督论文阅读笔记 DenseCL:Dense Contrastive Learning for Self-Supervised Visual Pre-Training