• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Linkowanie własnych statycznych bibliotek c++ w Xcode 10.0

Mały hosting, OGROMNE możliwości
0 głosów
434 wizyt
pytanie zadane 19 października 2018 w C i C++ przez Michal5552 Początkujący (400 p.)
Stworzyłem bibliotekę statyczną, która zawiera funkcję zamieniającą liczbę na tablicę znaków(typ char). Mam problem z dołączeniem pliku z rozszerzeniem .a do projektu, który ma wykorzystywać tę bibliotekę. Mianowicie wyskakuje mi error:

/clang:-1: linker command failed with exit code 1 (use -v to see invocation)

Wpisywałem ścieżkę bezwzględną pliku w Library Search Paths i dalej projekt nie chce się skompilować.

Z góry proszę, o wytłumaczenie co mam zrobić by to zadziałało w Xcode, a nie sugerowanie mi innych środowisk.

1 odpowiedź

+1 głos
odpowiedź 19 października 2018 przez criss Mędrzec (172,570 p.)
wybrane 20 października 2018 przez Michal5552
 
Najlepsza
W Library Search Paths masz wpisać ścieżke do kataogu w którym plik biblioteki będzie szukany. Wtedy w liście bibliotek do zalinkowania możesz podać samą nazwe pliku, a nie całą ścieżkę i to jest kluczowy krok, żeby biblioteka została dołączona do twojego executable. Prawdopodbnie tego nie robisz.
komentarz 19 października 2018 przez Michal5552 Początkujący (400 p.)
Chyba, że wpisuję źle ścieżkę.

W Library Search Paths wpisuję: /Users/michal/Library/Developer/Xcode/DerivedData/my_itoa-azgjeuakmbfoadcgnnzwhnlfxxix/Build/Products/Debug/

A w sumie nie wiem gdzie konkretnie mam wpisać 'samą nazwe pliku',

ma się ona znaleźć w Framework Search Paths ?

Ogólnie dalej mam ten sam error. Jestem zielony w tej chwili :/
komentarz 19 października 2018 przez criss Mędrzec (172,570 p.)

A w sumie nie wiem gdzie konkretnie mam wpisać 'samą nazwe pliku',

Też niestety nie wiem, bo nigdy nie uzywalem xcode. Wg tego: https://stackoverflow.com/questions/445815/linking-libraries-in-xcode

Znajdź Linking->Other Linking Flags i dopisz tam opcje -l<tutaj nazwa twojego pliku .a bez ".a" na koncu>. Np. jeśli twoja libka nazywa się mylib.a, to wpisz tam -lmylib
O ile poprawnie wpisałeś ścieżke do katalogu w którym się znajduje, to powinno działać. 

komentarz 20 października 2018 przez Michal5552 Początkujący (400 p.)
Ogarnąłem w końcu temat, działa i nawet nie muszę się martwić podawaniem właściwej ścieżki do pliku biblioteki. Na przyszłość gdybyś kiedyś jednak używał xcoda, w Build Phases w zakładce Link Binary With Libraries powinien znaleźć się plik biblioteki z rozszerzeniem .a. Aby to zrobić wystarczy przeciągnąć plik biblioteki do drzewa projektu i automatycznie jest podczepiany do projekciku. Ale i tak dzięki za zainteresowanie się moim pytaniem, najlepsza odpowiedź leci w Twoją stronę ;)

Podobne pytania

0 głosów
0 odpowiedzi 511 wizyt
pytanie zadane 20 kwietnia 2021 w C i C++ przez Doge Gaduła (3,420 p.)
0 głosów
1 odpowiedź 336 wizyt
0 głosów
2 odpowiedzi 691 wizyt
pytanie zadane 24 kwietnia 2017 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)

93,715 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,259 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...