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>
    

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

  • 資源文件:主要是你用到的一些程序代碼以外的東西,比如圖片之類,或者菜單、工具欄之類的。

2. 庫目錄 & 附加依賴項

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

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

來手動指定了。你寫代碼讀寫一個文件需要寫明文件名吧,這個文件名就相當於那個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步驟沒有做。


免責聲明!

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



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