【问题标题】:Makefile Errors生成文件错误
【发布时间】:2013-09-03 23:26:32
【问题描述】:

我一直在尝试在我的 mac 上编译这个 makefile,但它会带来一个特定的错误。

首先,这是 makefile 所在的文件夹: http://www.zezula.net/download/stormlib.zip 那是直接下载链接。它包含一个我正在尝试运行的文件“Makefile.mac”。

所以我通过XCode安装了命令行工具,然后我使用了:

cd ~/Downloads/StormLib/
make -f Makefile.mac

显示错误:

Makefile.mac:87: *** missing separator (did you mean TAB instead of 8 spaces?).  Stop.

是的,我已经寻找解决方案。它说要事先添加一个标签。所以我试了一下,结果如下:

Makefile.mac:87: *** commands commence before first target.  Stop.

我查找了该错误,其中一种解决方案涉及使用空格而不是制表符。所以现在我很困惑。我应该怎么做才能修复它?这是第 87 行的样子:

src/libtomcrypt/src/pk/asn1/der_length_utctime.obj \

感谢所有帮助。

编辑:这是生成文件: http://pastebin.com/KSba5fUv

删除了一些行并标记了第 87 行的 makefile 版本是:

[9 lines deleted]

CPP    = g++
CC     = gcc
CFLAGS = -Wall
LFLAGS = -lbz2 -lz -framework Carbon
ARCH = -arch x86_64
DFLAGS = -D__SYS_BZLIB -D__SYS_ZLIB -D_7ZIP_ST
AR     = ar
ARFLAGS= rcs

LIBRARY  = libStorm.dylib

OBJS_CPP = src/adpcm/adpcm.obj \
           src/huffman/huff.obj \
[15 lines deleted]
           src/SFileReadFile.obj \
           src/SFileVerify.obj


OBJS_C   = src/jenkins/lookup3.o \
           src/libtomcrypt/src/hashes/hash_memory.obj \
[39 lines deleted]
           src/libtomcrypt/src/pk/asn1/der_length_sequence.obj \
           src/libtomcrypt/src/pk/asn1/der_length_short_integer.obj \
       \
       src/libtomcrypt/src/pk/asn1/der_length_utctime.obj \         # This is line 87
       \  
           src/libtomcrypt/src/pk/asn1/der_length_utf8_string.obj \
       \  
           src/libtomcrypt/src/pk/asn1/der_sequence_free.obj \
       \  
           src/libtomcrypt/src/pk/ecc/ltc_ecc_map.obj \
           src/libtomcrypt/src/pk/ecc/ltc_ecc_mul2add.obj \
[135 lines deleted]
           src/pklib/explode.obj \
           src/pklib/implode.obj

all: $(LIBRARY)

[8 lines deleted]

$(LIBRARY): $(OBJS_C) $(OBJS_CPP)
    $(CPP) $(CFLAGS) $(DFLAGS) $(ARCH) $(LFLAGS) -shared -o $(LIBRARY) $(OBJS_C) $(OBJS_CPP)
#   $(AR) $(ARFLAGS) $(LIBRARY) $(OBJS_C) $(OBJS_CPP)

$(OBJS_C): %.obj: %.c
    $(CC) -o $@ $(CFLAGS) $(DFLAGS) -c $<

$(OBJS_CPP): %.obj: %.cpp
    $(CC) -o $@ $(CFLAGS) $(DFLAGS) -c $<

【问题讨论】:

  • 我看不出任何人如何在没有看到您的代码的情况下解决您的问题
  • 您确实需要在第 87 行周围发布至少几行 [可能之前 5-10 行,之后 5-10 行]。
  • 将来,如果您只是在网站上发布您的代码的相关行,而不是让人们下载文件、提取和打开文件,那么您可能会得到更好的答案。如果您不打算在此网站上发布它,您也可以使用 Pastie 之类的网站将其放到网上某个地方。
  • 您需要在第 87 行的两侧显示几行。可能是您在前一行缺少反斜杠。
  • 查看代码,您应该尝试转义第 86、88、90、92 行的空行,或者完全删除它们。

标签: c++ macos compiler-errors makefile


【解决方案1】:

您可能需要转义空白行,或完全删除它们:

   src/libtomcrypt/src/pk/asn1/der_length_sequence.obj \
   src/libtomcrypt/src/pk/asn1/der_length_short_integer.obj \

   src/libtomcrypt/src/pk/asn1/der_length_utctime.obj \

   src/libtomcrypt/src/pk/asn1/der_length_utf8_string.obj \

   src/libtomcrypt/src/pk/asn1/der_sequence_free.obj \

   src/libtomcrypt/src/pk/ecc/ltc_ecc_map.obj \
   src/libtomcrypt/src/pk/ecc/ltc_ecc_mul2add.obj \

变成

   src/libtomcrypt/src/pk/asn1/der_length_sequence.obj \
   src/libtomcrypt/src/pk/asn1/der_length_short_integer.obj \
   src/libtomcrypt/src/pk/asn1/der_length_utctime.obj \
   src/libtomcrypt/src/pk/asn1/der_length_utf8_string.obj \
   src/libtomcrypt/src/pk/asn1/der_sequence_free.obj \
   src/libtomcrypt/src/pk/ecc/ltc_ecc_map.obj \
   src/libtomcrypt/src/pk/ecc/ltc_ecc_mul2add.obj \

或(这可能行不通,尚未测试,但应该)

   src/libtomcrypt/src/pk/asn1/der_length_sequence.obj \
   src/libtomcrypt/src/pk/asn1/der_length_short_integer.obj \
   \
   src/libtomcrypt/src/pk/asn1/der_length_utctime.obj \
   \
   src/libtomcrypt/src/pk/asn1/der_length_utf8_string.obj \
   \
   src/libtomcrypt/src/pk/asn1/der_sequence_free.obj \
   \
   src/libtomcrypt/src/pk/ecc/ltc_ecc_map.obj \
   src/libtomcrypt/src/pk/ecc/ltc_ecc_mul2add.obj \

【讨论】:

  • 谢谢。这似乎摆脱了那个错误。我很抱歉,我应该把makefile放在pastebin上。这是给任何需要它的人:pastebin.com/KSba5fUv
猜你喜欢
  • 2014-11-02
  • 2011-10-14
  • 2023-03-26
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多