在 Visual Studio 2012 中完成配置華爲軟件入職前練習的CppUnit測試

聲明:
        本文主要參考博客:

        在華爲入職前練習的 OJ 項目中,已經設置好部分測試用例,直接用來作爲程序調試非常方便。但是 OJ 的項目是在 Visual Studio 2005 環境下建立配置的項目,在 Visual Studio 2012 下並不能直接使用。需要進行重新配置。本文主要介紹在 Visual Studio 2012 環境下完成配置 OJ 項目中的 CppUnit 的配置方法。
        具體來說,不能再 Visual Studio 運行的原因是 cppunitd.lib 這個庫文件與編譯環境不匹配,因此,需要重新編譯 CppUnit。具體的 CppUnit 編譯方法如下:
  • 下載最新的與 OJ 項目匹配的 CppUnit 版本
        本人使用的是 CppUnit-1.12.1 ,文件目錄如下:
  • 編譯 CppUnit,獲取在當前環境下的 cppunitd.lib 庫
        具體做法如下:
    • 在上圖中 src 目錄下,用 Visual Studio 2012 打開工程 CppUnitLibraries.dsw提示遷移
    • 提示工程遷移時,全部選 “”,得到下圖的項目工程
    • 這時,工程直接編譯是無法通過的。需要進行三處修改:
      • 在工程中,移除 DSPlugIn 項目,因爲它只支持 Visual Studio 6.0
      • 將 cppunit 設置爲 “啓動項目”,並在項目的 “屬性管理器中”,右鍵點擊 cppunit 將其重名名爲 cppunitd,原因是原始項目中設置存在問題
      • 在 原 src\msvc6\testrunner 文件下找到 MsDevCallerListCtrl.cpp 文件,將 67行的
#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids
                        修改爲:
#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids
    • 然後,可以編譯 CppUnit,在 cppunit-1.12.1\lib 下能夠得到編譯好的 cppunitd.lib 
  • 將 cppunitd.lib 庫複製到 OJ 工程的 cppunit-1.12.1\lib\vc80 文件夾下,覆蓋原始工程的 cppunitd.lib 庫
  • 配置 OJ 工程,完成 CppUnit 配置
        具體做法如下:
    • 用 Visual Studio 2012 打開 OJ 項目的 Project 文件夾下打開工程
    • 提示遷移時,全部選 “
    • 然後,右鍵工程選擇 “屬性”—“C/C++”—“代碼生成”—“運行庫”,選擇“多線程調試DLL
    • 再編譯,就能夠通過了

        最後,感謝前人的幫助!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章