Mam projekt Xcode, który jest zasadniczo pojedynczą aplikacją, która jest wbudowana w kilka prawie identycznych celów. Przeniosłem prawie wszystkie ustawienia konfiguracji kompilacji w centralnych miejscach, ale nie mogę wymyślić, jak przenieść linkowanie do statycznej biblioteki (libMantle.a) do xcconfig. Próbowałem flagi -framework
i -l
, jak używam do różnych innych bibliotek, ale nie działają. Czy istnieje sposób na pobranie plików .a z panelu Link Binary with Libraries, więc nie muszę synchronizować wszystkich celów ręcznie?Binarny link z biblioteką statyczną w xcconfig
Odpowiedz
Zdobione ...
Powiedzmy, że chcemy połączyć przeciwko pliku libGoogleAnalyticsServices.a
. Zasadniczo istnieją trzy rzeczy, które powinieneś mieć w swoim pliku .xcconfig, aby działało.
Najpierw należy się upewnić, że ścieżka do biblioteki znajduje się w ścieżce wyszukiwania. Następnie musisz podać dwie flagi, aby linker był szczęśliwy -L
ze ścieżką do katalogu i -l
z biblioteką.
Kładzenie to wszystko razem będzie Ci coś takiego:
LIBRARY_SEARCH_PATHS = $(inherited) "$(SRCROOT)/Vendor/Google Analytics"
OTHER_LDFLAGS = $(inherited) -L"$(SRCROOT)/Vendor/Google Analytics" -lGoogleAnalyticsServices
(będzie trzeba dostosować do swoich ścieżek względnych)
Najbardziej pomocne jest w coraz to załatwione było Log Navigator (polecenie + 8 w Xcode). Umieszczając bibliotekę statyczną w panelu Build Fazy Link Binary With Libraries
i wykonując udaną kompilację, możesz przejrzeć szczegóły etapu łączenia w dziennikach i zobaczyć, w jaki sposób przekazywała bibliotekę Analytics do kompilatora. Stamtąd po prostu replikuje te flagi w Xcconfig.
- 1. Binarny link iOS z biblioteką tylko do debugowania
- 2. link z biblioteką statyczną a poszczególnymi plikami obiektowymi
- 3. Powiąż bibliotekę statyczną z biblioteką współdzieloną JNI w Androidzie
- 4. jak powiązać bibliotekę statyczną z biblioteką dynamiczną w gcc
- 5. Skompiluj skrypt Swift ze statyczną biblioteką Swift
- 6. Problemy z ld i biblioteką statyczną "niezdefiniowane odniesienie do"
- 7. Różnica między biblioteką statyczną i dynamiczną w Xcode dla iPhone'a
- 8. Różnica między biblioteką statyczną a relokowalnym plikiem obiektu?
- 9. CMake: Twórz wiele plików wykonywalnych w jednym projekcie z biblioteką statyczną
- 10. W jaki sposób kod obiektowy jest kopiowany do pliku wykonywalnego podczas łączenia z biblioteką statyczną?
- 11. Czego brakuje mi w opcjach kompilatora do łączenia z biblioteką statyczną JSON-C?
- 12. Dodano do Xcode xcconfig złożyć
- 13. Czy można bezpiecznie połączyć z biblioteką statyczną zbudowaną przy użyciu różnych flag kompilatora?
- 14. Niezdefiniowane odniesienia podczas próby połączenia aplikacji Qt z moją biblioteką statyczną
- 15. Jak śledzić kolejność linków podczas łączenia z biblioteką statyczną za pomocą gnu-make?
- 16. bash/procesor binarny/binarny strumień toolchain binarny
- 17. binarny z opcode w montażu
- 18. Adres autouzupełniania z biblioteką google w Primefaces
- 19. Jak utworzyć bibliotekę statyczną z istniejącego środowiska w systemie iOS?
- 20. Jak połączyć kod hosta ze statyczną biblioteką CUDA po rozłączeniu kompilacji?
- 21. Jakieś problemy z biblioteką System.Net.PeerToPeer?
- 22. Różnica między fazami kompilacji -> Binarny link z bibliotekami lub Ustawienia kompilacji -> Flagi łączników
- 23. Różnica między biblioteką a biblioteką macierzystą
- 24. Przejrzystość z biblioteką obrazów w języku Python
- 25. Kopiowanie pliku w sftp z biblioteką jsch
- 26. Jak mogę opcjonalnie połączyć się ze statyczną lub dynamiczną biblioteką doładowania za pomocą CMake?
- 27. Różnica wielkości między biblioteką statyczną i dynamiczną (debugowanie) a wpływem na ostateczny exe
- 28. złożony projekt Xcode z wieloma plikami .xcconfig i cocoapods
- 29. Jak dołączyć wartości do zmiennych xcconfig?
- 30. C++ zainicjować macierz statyczną
Czy mogę zapytać, jak radzisz sobie z plikami źródłowymi dla różnych celów? Czy dodajesz je również do plików xcconfig? Czy to w ogóle jest możliwe? – vinzenzweber
Pliki xcconfig specyficzne dla celu stają się dość nieporządne, ponieważ nie ma naprawdę dobrego sposobu na zrobienie tego. Rzadko mam projekty, których cele mają drastycznie różne zależności od bibliotek. Co konkretnie próbujesz zrobić? – farski
Mam projekt z 9 celami. Potrzebuję tylko tych obiektów, aby ustawić JEDEN POJEDYNCZY makroprocesor dla każdego celu. Głównie w celu zmiany podstawowego adresu URL interfejsu API dla różnych środowisk (tworzenie, wdrażanie, produkcja). Dlatego chciałbym mieć pojedynczy plik, który określa podstawową konfigurację kompilacji, w tym wszystkie pliki źródłowe i zasoby do skopiowania. – vinzenzweber