最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解vs2022創(chuàng)建及調(diào)用.lib的方法

 更新時(shí)間:2022年11月18日 10:39:17   作者:MINO吖  
這篇文章主要介紹了vs2022創(chuàng)建及調(diào)用.lib的方法,調(diào)用Lib的原則就是可以讓編譯器找到頭文件和庫文件的目錄,并正確引入,本文給大家詳細(xì)講解需要的朋友可以參考下

靜態(tài)庫

1. 靜態(tài)庫對(duì)函數(shù)庫的鏈接是在編譯期完成的。執(zhí)行期間代碼裝載速度快。
2. 使可執(zhí)行文件變大,浪費(fèi)空間和資源(占空間)。
3. 對(duì)程序的更新、部署與發(fā)布不方便,需要全量更新。如果 某一個(gè)靜態(tài)庫更新了,所有使用它的應(yīng)用④程序都需要重新編譯、發(fā)布給用戶。

動(dòng)態(tài)庫

1. 動(dòng)態(tài)庫把對(duì)一些庫函數(shù)的鏈接載入推遲到程序運(yùn)行時(shí)期(占時(shí)間)。
2. 可以實(shí)現(xiàn)進(jìn)程之間的資源共享。(因此動(dòng)態(tài)庫也稱為共享庫)
3. 將一些程序升級(jí)變得簡(jiǎn)單,不需要重新編譯,屬于增量更新。

 1. 創(chuàng)建靜態(tài)庫(.lib)

添加一個(gè)“靜態(tài)庫” 的新項(xiàng)目 - StaticLib1。

 預(yù)編譯頭選擇“不使用預(yù)編譯頭”。

pch.h: 

選擇使用預(yù)編譯頭文件的話,要?jiǎng)?chuàng)建對(duì)應(yīng)的預(yù)編譯頭文件,并且在源文件中要引用預(yù)編譯頭文件。否則會(huì)報(bào)錯(cuò)。

staticLib1.h

#ifndef STATIC_LIB
#define STATIC_LIB
 
#include <iostream>
using namespace std;
 
void fnStaticLib1();
 
class StaticOne {
	int age;
public:
	StaticOne() {};
	StaticOne(int a);
	void sayHello();
};
 
#endif // !STATIC_LIB

staticLib1.cpp

#include <iostream>
#include "pch.h"
 
void fnStaticLib1()
{
    std::cout << "fnStaticLib1!" << std::endl;
}
 
StaticOne::StaticOne(int a) : age(a) {};
 
void StaticOne::sayHello() {
    std::cout << "Hello, C++." << std::endl;
};

右鍵項(xiàng)目,點(diǎn)擊生成;并提示成功

2. 創(chuàng)建應(yīng)用程序(.exe)

 index.cpp

#include "staticLib1.h"
#pragma comment(lib, "StaticLib1.lib")
 
void main() {
	StaticOne a(1);
	a.sayHello();
 
	fnStaticLib1();
}

3. 調(diào)用lib

3.1 方法1

3.1 通過調(diào)整文件路徑實(shí)現(xiàn)調(diào)用

如上的index.cpp,肯定是會(huì)提示找不到對(duì)應(yīng)的文件的。

所以可以將靜態(tài)庫的 .h和.lib 文件拷貝到.exe項(xiàng)目下,就可以正常運(yùn)行了。

但是每次修改靜態(tài)庫代碼后,重新生成.lib都要手動(dòng)復(fù)制文件過來很麻煩。

可以修改index.cpp(具體根據(jù)自己的目錄調(diào)整):

#include "../StaticLib1/staticLib1.h"
#pragma comment(lib, "../x64/Debug/StaticLib1.lib")

3.2 方法2

3.2 通過更改目錄配置,讓編譯器可以在正確的目錄讀取到文件,然后引入。以此實(shí)現(xiàn)調(diào)用

3.1方法中不論是拷貝粘貼文件,還是使用路徑引入文件都不太友好。

那么可以在.exe項(xiàng)目的屬性頁中對(duì).h和.lib的目錄進(jìn)行配置。

  • .h 頭文件目錄的配置項(xiàng)(任選一個(gè)配置即可):
    • VC++目錄 - 包含目錄
    • C/C++ - 附加包含目錄
  • .lib 庫文件目錄的配置項(xiàng)(任選一個(gè)配置即可):
    • VC++目錄 - 庫目錄
    • 鏈接器 - 附加庫目錄

配置好(附加)包含目錄和(附加)庫目錄之后,將 index.cpp代碼改為如下即可。

不需要寫相對(duì)、絕對(duì)路徑,因?yàn)榫幾g器會(huì)在配置的(附加)包含目錄和(附加)庫目錄中進(jìn)行讀取。

#include "staticLib1.h"
#pragma comment(lib, "StaticLib1.lib")

 甚至,可以3.1和3.2混合使用,只配置包含目錄,不配置庫目錄。.lib文件通過相對(duì)/絕對(duì)路徑進(jìn)行引入。

3.3 方法三

3.3是在3.2的基礎(chǔ)上,增加"附加依賴項(xiàng)"的配置,去掉pragma

通過3.2對(duì)目錄進(jìn)行配置之后就可以正常運(yùn)行了。

但是每次在調(diào)用時(shí)除了引入.h之外,還要通過pragma comment引入.lib,也不太友好。

那么在3.2的基礎(chǔ)上,我們可以在屬性頁中對(duì)依賴的庫進(jìn)行配置(鏈接器 - 輸入 - 附加依賴項(xiàng)

填入.lib的名稱。

 index.cpp

#include "staticLib1.h"
 
void main() {
	...
}

這樣就不需要再填寫pragma comment了。

3.4 方法四

3.4通過vs“引用”實(shí)現(xiàn)調(diào)用

1. 引入.h文件(通過路徑引入或目錄配置都可)

2. 添加引用 ,勾選對(duì)應(yīng)的靜態(tài)庫

 index.cpp

#include "staticLib1.h"
 
void main() {
	...
}

調(diào)用Lib的原則就是:可以讓編譯器找到頭文件和庫文件的目錄,并正確引入。

只要符合這一點(diǎn),以上方法可以任意搭配使用。

到此這篇關(guān)于vs2022創(chuàng)建及調(diào)用.lib的方法的文章就介紹到這了,更多相關(guān)vs2022創(chuàng)建調(diào)用.lib內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • OpenCV圖像特征提取之Shi-Tomasi角點(diǎn)檢測(cè)算法詳解

    OpenCV圖像特征提取之Shi-Tomasi角點(diǎn)檢測(cè)算法詳解

    Harris角點(diǎn)檢測(cè)算法就是對(duì)角點(diǎn)響應(yīng)函數(shù)R進(jìn)行閾值處理,Shi-Tomasi原理幾乎和Harris一樣的,只不過最后計(jì)算角點(diǎn)響應(yīng)的公式發(fā)生了變化。本文將和大家詳細(xì)說說Shi-Tomasi角點(diǎn)檢測(cè)算法的原理與實(shí)現(xiàn),需要的可以參考一下
    2022-09-09
  • C++寫注冊(cè)表項(xiàng)實(shí)例

    C++寫注冊(cè)表項(xiàng)實(shí)例

    這篇文章主要介紹了C++寫注冊(cè)表項(xiàng)實(shí)例,可實(shí)現(xiàn)開機(jī)啟動(dòng)的功能,是進(jìn)行Windows桌面應(yīng)用程序開發(fā)中非常重要的技巧,需要的朋友可以參考下
    2014-10-10
  • Qt中QStackedWidget控件的實(shí)現(xiàn)

    Qt中QStackedWidget控件的實(shí)現(xiàn)

    QStackedWidget是Qt框架中一個(gè)非常有用的控件,它允許你堆疊多個(gè)窗口部件,本文主要介紹了Qt中QStackedWidget控件的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • 使用Objective-C獲取IPHONE手機(jī)IMSI序列號(hào)

    使用Objective-C獲取IPHONE手機(jī)IMSI序列號(hào)

    這篇文章主要介紹了使用Objective-C獲取IPHONE手機(jī)IMSI序列號(hào)的方法以及通過IMSI序列號(hào)獲取運(yùn)營商、手機(jī)號(hào)的方法,非常的實(shí)用,有需要的小伙伴可以參考下。
    2015-04-04
  • C++中的模板類繼承和成員訪問問題

    C++中的模板類繼承和成員訪問問題

    這篇文章主要介紹了C++中的模板類繼承和成員訪問問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • exec()函數(shù)在C++中的應(yīng)用及其用法

    exec()函數(shù)在C++中的應(yīng)用及其用法

    exec()函數(shù)在C++中是一個(gè)進(jìn)程控制函數(shù),用于創(chuàng)建新進(jìn)程執(zhí)行其他程序或命令行指令。exec()函數(shù)可以替換當(dāng)前進(jìn)程的代碼和數(shù)據(jù),創(chuàng)建新的進(jìn)程運(yùn)行其他程序。exec()函數(shù)有多個(gè)版本,例如execl、execv、execle、execve等,根據(jù)不同的參數(shù)類型和個(gè)數(shù)來使用
    2023-05-05
  • vscode+platformIO開發(fā)stm32f4的實(shí)現(xiàn)

    vscode+platformIO開發(fā)stm32f4的實(shí)現(xiàn)

    這篇文章主要介紹了vscode+platformIO開發(fā)stm32f4的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • c語言單詞本的新增、刪除、查詢按順序顯示功能

    c語言單詞本的新增、刪除、查詢按順序顯示功能

    這篇文章主要介紹了c語言單詞本的新增、刪除、查詢按順序顯示功能,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • C語言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例

    C語言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例

    深度優(yōu)先搜索即是對(duì)一個(gè)新發(fā)現(xiàn)的節(jié)點(diǎn)上如果還關(guān)聯(lián)未探測(cè)到的邊,就沿此邊探測(cè)下去,直到發(fā)現(xiàn)從原點(diǎn)可達(dá)的所有點(diǎn)為止,這里我們就來展示C語言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例
    2016-06-06
  • C++ Qt開發(fā)之PushButton按鈕組件的使用詳解

    C++ Qt開發(fā)之PushButton按鈕組件的使用詳解

    Qt 是一個(gè)跨平臺(tái)C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺(tái)窗體應(yīng)用程序,本文將重點(diǎn)介紹QPushButton按鈕組件的常用方法及靈活運(yùn)用,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-12-12

最新評(píng)論

额尔古纳市| 区。| 余姚市| 青阳县| 甘孜县| 陇西县| 焉耆| 曲沃县| 桦川县| 岳普湖县| 康马县| 海口市| 开远市| 洛隆县| 黄石市| 木里| 云阳县| 永和县| 贵港市| 中西区| 北票市| 永州市| 盐池县| 宜宾市| 甘德县| 交城县| 拉孜县| 合山市| 伊宁市| 盐源县| 阿坝| 岳池县| 浦江县| 齐河县| 岳阳县| 禹城市| 东乌珠穆沁旗| 兴文县| 丽江市| 常德市| 鸡泽县|