使用VS2022新建空項目,項目名為MyStaticLib,項目所在文件夾為“E:\temp”。
點擊創建,即完成項目的創建。
在VS2022的“解決方案資源管理器”視圖中,添加名為“MyStaticLib.h”(文件名可以任意)的頭文件(右鍵單擊“頭文件-添加-新建項-頭文件”),
輸入如下代碼:
#ifndef _MY_STATIC_LIB_H_
#define _MY_STATIC_LIB_H_
int my_static_add(int a, int b);
#endif
在VS2022的“解決方案資源管理器”視圖中,添加名為“MyStaticLib.cpp”(文件名可以任意)的C++文件(右鍵單擊“源文件-添加-新建項-C++文件”),
#include "MyStaticLib.h"
int my_static_add(int a, int b)
{
return a+b;
}
在項目屬性頁中,將配置類型改為“靜態庫(.lib)”。
生成解決方案,即可生成庫文件“ E:\temp\MyStaticLib\x64\Debug\MyStaticLib.lib”。
使用VS2022新建空項目,項目名為MyApp,項目所在文件夾為“E:\temp”。
在VS2022的“解決方案資源管理器”視圖中,為項目MyApp添加名為“main.cpp”(文件名可以任意)的C++文件(右鍵單擊“源文件-添加-新建項-C++文件”),輸入如下代碼:
#include <iostream>
// 包含靜態庫的頭文件
#include "E:\temp\MyStaticLib\MyStaticLib.h"
int main()
{
int a = 3, b = 5;
int c = my_static_add(a, b);
std::cout << "my_static_add(" << a << "," << b << ") = " << c << std::endl;
return 0;
}
此時生成解決方案,會出現鏈接錯誤,錯誤提示信息大致是:
main.obj : error LNK2019: 無法解析的外部符號 "int __cdecl my_static_add(int,int)" (?my_static_add@@YAHHH@Z),函數 main 中引用了該符號
這是連接器找不到庫文件所導致的錯誤,解決方法是:MyApp項目屬性頁,鏈接器,輸入,附加依賴項,添加依賴項“E:\temp\MyStaticLib\x64\Debug\MyStaticLib.lib”
生成解決方案,即可生成可執行文件“E:\temp\MyApp\x64\Debug\MyApp.exe”。
在命令行進入目錄“E:\temp\MyApp\x64\Debug\”,運行MyApp.exe,運行結果如下: