• 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

Object Storage Arubacloud
0 głosów
245 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,590 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,590 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 304 wizyt
pytanie zadane 20 kwietnia 2021 w C i C++ przez Doge Gaduła (3,370 p.)
0 głosów
1 odpowiedź 161 wizyt
0 głosów
2 odpowiedzi 317 wizyt
pytanie zadane 24 kwietnia 2017 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...