VS2015如何新建C++或者C語言版的lib文件


  當我們不想公開我們的代碼的時候,可以把我們的代碼封裝成靜態數據連接庫,即lib文件。下面介紹下如何生成lib文件。

  以VS2015為例,一種是C++版的lib文件,一種是C語言版的lib文件。

一、按照下圖新建Win32項目TestLib。

 二、選擇靜態庫,取消預編譯。

三、新建完工程后,我們創建一個頭文件和一個cpp文件。

TestLib.h

#pragma once

void HelloWorld();

TestLib.cpp

#include <stdio.h>
#include "TestLib.h"

void HelloWorld()
{
	printf("Hello World\n");
}

編譯該工程后,我們得到一個TestLib.lib文件。

四、再新建一個Win32控制台程序TestApp,進行測試。

在TestApp.cpp里引入TestLib.h

// TestApp.cpp : 定義控制台應用程序的入口點。
//

#include "stdafx.h"
#include "..\TestLib\TestLib.h"

int main()
{
    HelloWorld();
    return 0;
}

指定TestLib.lib的路徑,方法如下:

右鍵TestApp項目,點擊屬性,進入下圖,在【連接器】--【輸入】--【附加依賴項】里輸入TestLib的路徑。這里寫的是相對路徑 $(OutputPath)TestLib.lib。

這樣即使把我們的項目移到其他的目錄里,依然能夠進行debug。

五、把TestApp項目設定成啟動項。

 

六、編譯后,得到運行結果

從上面可以看出我們的lib項目里的TestLib.cpp是cpp文件,即C++文件。

如果我們把TestLib.cpp改成TestLib.c的話,這時候重新編譯lib工程,然后運行TestApp,

會出現如下錯誤:

有時候,可能因為某種原因,lib文件必須是C語言,那么該怎么解決?

這時候,我們需要更改我們TestLib.h這個文件。

#pragma once

#ifdef __cplusplus
extern"C" {

	void HelloWorld();
#endif

#ifdef __cplusplus
}
#endif
為了在C++代碼中調用用C寫成的庫文件,就需要用extern"C"來告訴編譯器:這是一個用C寫成的庫文件,請用C的方式來鏈接它們。
這樣重新編譯我們的Testlib.lib后,再次運行TestApp就可以了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM