1. 程式人生 > >vs 外部依賴項 附加依賴項以及如何新增依賴專案

vs 外部依賴項 附加依賴項以及如何新增依賴專案

我們在 VS 中建立 Win32 控制檯應用程式,vs 會為解決方案建立預設地建立 4 個 filters(資源管理器中沒有對應的目錄和資料夾):

  • 標頭檔案:一般為 .h 檔案
  • 外部依賴項
  • 原始檔:一般為 .cpp檔案
  • 資原始檔

1. 外部依賴項 & 資原始檔

  • 外部依賴項:C++ 外部依賴項有很多,大部分都是靜態庫檔案,編譯的時候會遞迴關聯起來生成可執行檔案,所以可執行檔案才會大很多

    編譯的時候: 外部依賴項都是一個填充地址 , 比如 你的程式碼裡呼叫 外部依賴函式地址 Extern_funA 。

    • 預編譯的時候展開標頭檔案
    • 編譯生成obj檔案的時候,Extern_funA 就是一個填充地址 比如 0x00 00 00 00
    • 連結的時候基地址重定位生成對應的 Extern_funA 地址。
    • 連結的時候會根據你的工程配置想一個去查詢 DLL 匯出符號表,發現沒有找到 Extern_funA 。那麼就會出錯,說無法定位外部符號。

    右鍵【原始檔】,選擇【新增 ⇒ 新建項】,比如此時我們建立,test.cpp 檔案,只需 include 一個檔案:

    
    #include <iostream>
    
    • 1
    • 2
    • 3

    此時重新點開 【外部依賴項】filter,便會看到引入了相當多的庫檔案。

  • 資原始檔:主要是你用到的一些程式程式碼以外的東西,比如圖片之類,或者選單、工具欄之類的。

2. 庫目錄 & 附加依賴項

庫目錄只是查詢目錄,類似環境變數 PATH;具體用哪一個需要指明的,如果不在附加依賴項裡填上,就需要在程式碼裡用

#pragma comment(lib, “xxx.lib”)
  • 1

來手動指定了。你寫程式碼讀寫一個檔案需要寫明檔名吧,這個檔名就相當於那個lib , 但讀寫這個檔案可以不寫全路徑,就是因為有工作目錄(working directory)的存在。

3. 新增依賴專案

VS2013 新增依賴專案

  • 1、新建解決方案,專案A

  • 2、為專案A新增一個依賴專案B,專案B做為靜態lib被專案引用,

    專案B建立步驟如下:

    • 選擇選單”檔案”->新建->專案,彈出“新建專案”對話方塊;

    • 左側列表選擇Visual C++,右側列表選擇win32控制檯應用程式,

      對話方塊下面輸入名稱,選擇位置,解決方案選擇新增到解決方案,確定。

    • Win32應用程式嚮導,下一步,選擇應用程式型別為靜態庫,

      新增公共標頭檔案以用於選擇MFC(根據實際情況選擇,因為專案需求<nb30.h>編譯需要選擇MFC),完成。

  • 3、專案配置,專案A右鍵選擇屬性,選擇通用屬性,引用->新增新引用->選擇專案B;

    引用專案B的標頭檔案目錄,步驟如下:配置屬性->VC++目錄->包含目錄:新增專案B標頭檔案路徑..\B\Header。

其中編譯的時候會出專案A引用專案B的介面無法解析,可能是3步驟沒有做。

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://www.cnblogs.com/captainbed