makeはCXXFLAGSを作成する方法を知りません。止める

makeはCXXFLAGSを作成する方法を知りません。止める

私はFreeBSDに初めてアクセスし、ソースからコードをコンパイルしています。助けてくれてありがとう。コンパイルしようとしています。クイックキャラクターソースから。 make コマンドを実行すると、次のメッセージが返されます。

make don't know how to make CXXFLAGS. Stop

以下はMakefileの最初の数行です(全体のファイルは上記のfastText githubリポジトリにあります)。

CXX = c++
CXXFLAGS = -pthread -std=c++0x
OBJS = args.o dictionary.o matrix.o vector.o model.o utils.o
INCLUDES = -I.

opt: CXXFLAGS += -O3 -funroll-loops
opt: fasttext

debug: CXXFLAGS += -g -O0 -fno-inline
debug: fasttext

FreeBSD バージョン: 10.3
FreeBSD clang バージョン: 3.4.1
gmake バージョン: 4.1_2

ベストアンサー1

あなたの質問は次のとおりです。

opt: CXXFLAGS += -O3 -funroll-loops

BSDはmake名誉を持っていますが、一部 +=これは通常GNUmake機能です。 FreeBSDでは、GNUはmake(ほぼ常に)次のように利用可能です。ポート、それの名前はgmake

以下を使用して、コマンドラインでこれを確認できます。

make --version

印刷

usage: make [-BeikNnqrstWwX] 
            [-C directory] [-D variable] [-d flags] [-f makefile]
            [-I directory] [-J private] [-j max_jobs] [-m directory] [-T file]
            [-V variable] [variable=value] [target ...]

(GNU制作ではありません)

gmake --version

印刷

GNU Make 3.82
Built for amd64-portbld-freebsd10.0
Copyright (C) 2010  Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

(GNUプロダクション)。

ほとんどのメイクファイルは、これらのバージョンのいずれかを実行することが設定されているMAKE変数に依存するように作成され、(たとえば)連続メイクファイルが呼び出されると「ただ動作」します。だからあなたは一般的に行うことができます

gmake

残りの詳細は自動的に行われます。

おすすめ記事