2015-01-11 112 views
7

我試圖給測試庫Catch添加biicode支持,並且在與Objective-C和Microsoft基礎類(MFC)相關的外部依賴關係中遇到了一些問題。在biicode中處理未解決的依賴於平臺的依賴關係

以下是印刷如果運行bii deps

florianwolters/catch depends on: 
     system: 
      algorithm 
      assert.h 
      cmath 
      cstddef 
      cstdio 
      cstring 
      fstream 
      iomanip 
      iostream 
      iterator 
      limits 
      map 
      memory 
      ostream 
      set 
      sstream 
      stdbool.h 
      stdexcept 
      stdint.h 
      stdlib.h 
      streambuf 
      string 
      sys/time.h 
      sys/types.h 
      unistd.h 
      vector 
      windows.h 
     unresolved: 
      AfxWin.h 
      Foundation/Foundation.h 
      objc/runtime.h 
      sys/sysctl.h 

三個文件sys/sysctl.hobjc/runtime.hFoundation/Foundation.h都涉及到在Objective-C iOS開發。文件AfxWin.h是Microsoft的Microsoft基礎類(MFC)的C++庫的一部分。我創建的biicode塊爲florianwolters/catch(獲取更多信息)。

所以問題是:如何處理這種依賴關係?將Apple或Microsoft擁有的源代碼(甚至可能是非法的)上傳到bicode是沒有意義的,儘管我還沒有檢查許可證。

是「正確的」還是推薦的方法來簡單地忽略這些未解決的問題?

編輯2015年1月11日:

我已經寫的過程here博客文章。請讓我知道,如果我犯了什麼錯誤,或者如果您有任何改善工作流程的建議。

回答

5

是的,目前它是正確的方法。 Biicode已經預先定義了一些系統頭文件,這些頭文件是Win和Nix平臺的基本代碼,但不是全部。通常OSX或其他特定的頭文件作爲MFC將不會在biicode中找到,然後將被標記爲未解析。

這根本不是問題。你自己的庫也會發生同樣的情況。如果你想使用任何你的系統安裝的庫,你可以像平常一樣輕鬆完成(在CMake中使用Finders或Imported targets)。 Biicode會將該庫的包含標題標記爲未解決,這是指示它不由biicode管理的方式。只要這些頭文件存在於你的機器中,一切都會正常工作。

+2

謝謝您的回覆。例如,我想到了如何將「Boost」包含在內,我得出了同樣的結論。 –