如何在Mac OSX上编译RarCrack?

6

我正尝试通过命令行编译Rarcrack,使用的命令是:

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

我正在使用带有命令行工具的最新版本的Xcode。
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)

我一直在遇到这些架构错误。你知道它们的含义吗?

指令中提到要使用“make”来构建它。这对你不起作用吗? - Nikos C.
1
这是Makefile中的第一个默认任务。因此,这就是要运行的确切命令。 - Alex V
你用GCC编译,但错误是来自clang,这很奇怪。你是在Linux还是Mac上? - Nikos C.
我使用的是Mac电脑,并且rarcrack支持Mac系统。 - Alex V
@AlexV,我在使用Mac电脑,我必须编辑代码并编译它,请查看我的下面的答案。 - Jared Burrows
1个回答

8
今天我想要一个小的.rar/.zip密码破解器,发现了Rarcrack。
我成功地将Rarcrack(来自http://rarcrack.sourceforge.net/)编译到了Mac OSX上(我的Github: https://github.com/jaredsburrows/Rarcrack)。
基本上,Mac OSX版本的GCC不喜欢原始代码中使用的许多内联函数。我删除了内联函数,使它们变成普通函数,并进行了一些其他小的更改,最终得以编译。我通过在提供的示例上运行rarcrack来检查它是否工作。
如何编译:
$ git clone https://github.com/jaredsburrows/Rarcrack
$ cd Rarcrack
$ make

很不幸,它无法编译,但会生成两个警告:rarcrack.c:274:1: warning: control reaches end of non-void function [-Wreturn-type] rarcrack.c:315:1: warning: control reaches end of non-void function [-Wreturn-type]。我不明白为什么会出现这个警告,因为两种方法都使用 void 作为返回类型。有什么想法可以解决这个问题吗? - KayJ
@KayJ TravisCI说我的构建已经通过。 - Jared Burrows
@Gurol'Ca 链接源在我的回答中。 - Jared Burrows
@JaredBurrows 我遇到了以下错误ld: 文件未找到: /usr/lib/system/libsystem_containermanager.dylib,适用于架构 x86_64 clang: 错误: 链接器命令失败,退出代码为 1 (使用 -v 查看调用) - Chetan Sachdev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接