2012-10-23 9 views
25

Mam aplikację Cocoa, która kompiluje i łączy dobrze. Odkąd zamieniłem część kodu w statyczną bibliotekę, a następnie wróciłem i próbowałem połączyć bibliotekę libMyLib.a z moim oryginalnym programem.std :: end undefined w Cocoa App

I teraz pojawia się błąd linkera

Undefined symbols for architecture x86_64: 
    "std::terminate()", referenced from: 

przedstawieniu jednego z modułów źródłowych, które używają żyć w moim głównym projektem, ale obecnie mieszka w bibliotece.

Próbowałem wrócić i dopasować każdy kompilator i ustawienie linkera, aby zobaczyć, który z nich jest inny, ale po prostu nie mogę go przygwoździć. Mam przeczucie, że łączę się z C STD i potrzebuję C++ STD, ale wszystko używa kompilatora C99 ze standardowymi bibliotekami.

Wszelkie pomysły?

Dzięki!

+7

łączący w libC++. Dylib stała się kwestią – WebDrive

+2

WebDrive i @Scicare, proszę dodać odpowiedź i przyznaniu punktów i nagród odpowiednio. –

Odpowiedz

41

łącząc w libC++. Dylib stała się kwestią

+0

jak to połączyć? :) –

+2

dodaj libC++. Dylib do listy bibliotek w sekcji Linker opcji kompilacji – WebDrive

+3

Dodanie '-lC++' powinno również zadziałać – onlynone