2015-01-11 15 views
7

Próbowałem dodać obsługę biicode do biblioteki testowej Catch i miałem pewne problemy z zewnętrznymi zależnościami związanymi z Objective-C i Microsoft Foundation Classes (MFC).Obsługa nierozwiązanych zależnych od platformy zależności w biodiodzie

Poniżej jest drukowany, jeśli uruchomiony 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 

Trzy pliki sys/sysctl.h, objc/runtime.h i Foundation/Foundation.h są związane z rozwojem systemu iOS w Objective-C. Plik AfxWin.h jest częścią biblioteki C++ o nazwie Microsoft Foundation Classes (MFC) firmy Microsoft. Utworzony blok bijode to florianwolters/catch (w celu uzyskania dalszych informacji).

Pytanie brzmi: jak radzić sobie z takimi zależnościami? Nie ma sensu przesyłanie kodu źródłowego posiadanego przez Apple lub Microsoft (może nawet być nielegalne) do bicode, chociaż jeszcze nie sprawdziłem licencji.

Czy "właściwy" lub zalecany sposób po prostu ignoruje takie nierozwiązane problemy?

EDIT 11.01.2015:

pisałem na blogu o procesie here. Daj mi znać, jeśli popełniłem błędy lub jeśli masz sugestie dotyczące usprawnienia obiegu pracy.

Odpowiedz

5

Tak, w tej chwili jest to właściwy sposób. Biicode wstępnie zdefiniował niektóre nagłówki systemowe, podstawowe dla platformy Win i Nix, ale nie wszystkie. Zazwyczaj OSX lub inne specyficzne nagłówki jako MFC nie zostaną znalezione w biodiodzie, a następnie zostaną oznaczone jako nierozwiązane.

To wcale nie jest problem. To samo dzieje się w przypadku twoich własnych bibliotek. Jeśli chcesz korzystać z dowolnych bibliotek zainstalowanych w systemie, możesz to zrobić jak zwykle (w CMake z Finderami lub Importowanymi celami). Biicode zaznaczy nagłówki dołączone do tej biblioteki jako nierozwiązane, co jest wskazówką, że nie jest zarządzany przez biokod. Dopóki te nagłówki są obecne w urządzeniu, wszystko będzie działać poprawnie.

+2

Dziękuję za odpowiedź. Doszedłem do tego samego wniosku, gdy zastanawiałem się, w jaki sposób włączono na przykład "Zwiększenie". –