我正在尝试手动编译C ++项目(我是新手)
我有一个包含以下内容的MakeFile.am:
ifneq ($(WANT_JANSSON),)
JANSSON_INCLUDES= -I$(top_srcdir)/compat/jansson
else
JANSSON_INCLUDES=
endif
EXTRA_DIST = example-cfg.json nomacro.pl
SUBDIRS = compat
INCLUDES = $(PTHREAD_FLAGS) -fno-strict-aliasing $(JANSSON_INCLUDES)
bin_PROGRAMS = minerd
dist_man_MANS = minerd.1
minerd_SOURCES = elist.h miner.h compat.h \
cpu-miner.c util.c \
sha2.c scrypt.c
ifneq ($(ARCH_x86),)
minerd_SOURCES += sha2-x86.S scrypt-x86.S
endif
ifneq ($(ARCH_x86_64),)
minerd_SOURCES += sha2-x64.S scrypt-x64.S
endif
ifneq ($(ARCH_ARM),)
minerd_SOURCES += sha2-arm.S scrypt-arm.S
endif
minerd_LDFLAGS = $(PTHREAD_FLAGS)
minerd_LDADD = @LIBCURL@ @JANSSON_LIBS@ @PTHREAD_LIBS@ @WS2_LIBS@
minerd_CPPFLAGS = @LIBCURL_CPPFLAGS@
我打开了Windows'命令提示符并输入:
mingw32-make -f Makefile.am
输出:
mingw32-make: *** No targets. Stop.
我不知道为什么会出现这个错误。
答案 0 :(得分:1)
您对可用的工具感到困惑。
Makefile.am
不是makefile。这是一个automake文件。 Automake是一个工具,它将描述一个makefile(Makefile.am
文件)和一组配置选项(通常,但不一定,由自动配置工具autoconf
生成),以及生成一个名为Makefile
的生成文件。
然后,您可以使用make
运行Makefile
以构建您的系统。
这些工具(autoconf和automake)对于便携式软件非常重要,因为许多类UNIX系统都有细微差别。这些工具可以帮助您消除所有这些差异,甚至支持您以前从未使用过的新系统。
在Windows上,这并不重要,因为大多数Windows系统非常相似且向后兼容。因此,我怀疑大多数针对仅限Windows环境的人都会使用autoconf和automake。