web-dev-qa-db-ja.com

CXXFLAGSの作り方がわからない。やめる

私はFreeBSDとソースからのコードのコンパイルの両方に非常に慣れていないので、助けていただければ幸いです。ソースから fastText をコンパイルしようとしています。 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

2
Imran Ali

あなたの問題はこのような行です:

opt: CXXFLAGS += -O3 -funroll-loops

BSD makesome+=操作を尊重しますが、これは通常GNU make機能。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 make)ではない)対

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

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

4
Thomas Dickey