2013-09-22 17 views
6

Próbuję skompilować Rarcrack przez mojego wiersza poleceń za pomocą polecenia:Jak skompilować RarCrack na Mac OSX?

gcc -pthread rarcrack.c `xml2-config --libs --cflags` -O2 -o rarcrack 

Używam najnowszej wersji Xcode z narzędzi wiersza poleceń.

Undefined symbols for architecture x86_64: 
    "_savestatus", referenced from: 
     _loadstatus in rarcrack-sh2Aob.o 
     _status_thread in rarcrack-sh2Aob.o 
     _crack_thread in rarcrack-sh2Aob.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Wciąż dostaję te błędy architektury. Jakieś kości o znaczeniu?

+0

Instrukcje wspominają, że robisz "make", aby go zbudować. Czy to nie działa? –

+1

jest to pierwsze i domyślne zadanie w pliku makefile. więc jest to dokładne polecenie, które uruchamia. –

+0

To dziwne, że kompilujesz się z GCC, ale błąd pochodzi z języka. Czy korzystasz z systemu Linux lub Mac? –

Odpowiedz

8

Widzę, że nikt nie odpowiedział na to pytanie i nadal potrzebujesz rozwiązania!

Dzisiaj chciałem małego crackera .rar/.zip i natknąłem się na Rarcrack.

Spójrz na moim repo na Github tutaj:

https://github.com/jaredsburrows/Rarcrack

oryginalny kod tutaj:

http://rarcrack.sourceforge.net/

Zasadniczo wersja Mac OSX za GCC nie lubił posługiwać się wiele wbudowanych funkcji, które były w oryginalnym kodzie. Usunąłem funkcje inline, czyniąc je normalnymi funkcjami iz kilkoma innymi drobnymi zmianami udało się je skompilować. Sprawdziłem, czy działa, uruchamiając rarcrack na dostarczonych przykładach.

+0

Niestety, nie kompiluje się, ale generuje 2 ostrzeżenia: rarcrack.c: 274: 1: ostrzeżenie: sterowanie osiąga koniec funkcji non-void [-Wirowanie-typ] rarcrack.c: 315: 1: warning: control reached koniec funkcji nieważnej [-Wirowanie-typ] '. Nie rozumiem, dlaczego pojawia się ostrzeżenie, ponieważ obie metody używają 'void' jako typu zwracanego. Wszelkie pomysły, jak to naprawić? – KayJ

+0

@KayJ TravisCI mówi, że moja kompilacja przemija. –

+0

Czy możesz podać edytowany plik? –