【问题标题】:"*** missing seperator" error in LZMA's makefileLZMA 生成文件中的“***缺少分隔符”错误
【发布时间】:2019-06-11 03:33:20
【问题描述】:

我正在尝试在 Ubuntu 18.04 上构建 LZMA 18.05 库,但是当我在 C/Util/LzmaLib 中运行 make 时会发生以下情况:

制作 makefile:26: *** 缺少分隔符。停下来。

我真的不明白是什么原因造成的,因为我不是编写代码的人,而是一个众所周知的库。这是第 26 行:

!include "../../../CPP/Build.mak"

以下是相关生成文件的代码:

MY_STATIC_LINK=1
SLIB = sLZMA.lib
PROG = LZMA.dll
SLIBPATH = $O\$(SLIB)

DEF_FILE = LzmaLib.def
CFLAGS = $(CFLAGS) \

LIB_OBJS = \
  $O\LzmaLibExports.obj \

C_OBJS = \
  $O\Alloc.obj \
  $O\LzFind.obj \
  $O\LzFindMt.obj \
  $O\LzmaDec.obj \
  $O\LzmaEnc.obj \
  $O\LzmaLib.obj \
  $O\Threads.obj \

OBJS = \
  $(LIB_OBJS) \
  $(C_OBJS) \
  $O\resource.res

!include "../../../CPP/Build.mak"

$(SLIBPATH): $O $(OBJS)
    lib -out:$(SLIBPATH) $(OBJS) $(LIBS)

$(LIB_OBJS): $(*B).c
    $(COMPL_O2)
$(C_OBJS): ../../$(*B).c
    $(COMPL_O2)

知道如何解决这个问题吗?如果您需要更多,请here's the download link 到图书馆。

【问题讨论】:

    标签: makefile lzma


    【解决方案1】:

    这不是 GNU makefile。我认为它适用于 Windows 上的 nmake。其他内容(objdeflibdll 和资源文件)也指向 Windows 库构建,因此仅修补包含语法是不够的。这看起来不像是在 Unix 上构建的。

    【讨论】:

    • 感谢您的回复!我永远不会自己找到那个。你知道我在哪里可以找到适用于 Linux 的 LZMA 18.05 吗?找了好久都没找到。
    • @JigsawCorp,据我所知,LZMA SDK 是一个仅限 Windows 的项目。但它的main download page 包含指向Linux 配套项目p7zip 的链接。不知道这是否是您需要的一切或它的效果如何,但这可能是您更好的起点。
    • @JohnBollinger 我正在制作我们目前拥有的使用 LZMA 的 Windows 项目的 Linux 版本。因此,如果我使用另一个库,我将不得不重新编写调用 LZMA 的所有部分,因为这些调用主要依赖于库。我想我必须克服这些限制。
    猜你喜欢
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 2012-05-13
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    相关资源
    最近更新 更多