0

このエラーがTABの欠落に関連していることは知っていますが、1行目のどこにタブが欠落しているかをどういうわけか見つけることができません。

Makefile:

## -*- mode: make; tab-width: 8; -*-
##
## Simple Makefile
##
## TODO: 
##  proper configure for non-Debian file locations,   [ Done ]
##  allow RHOME to be set for non-default R etc

## comment this out if you need a different version of R, 
## and set set R_HOME accordingly as an environment variable

R_HOME =        $(shell R RHOME)

sources =       $(wildcard *.cpp)
programs =      $(sources:.cpp=)


## include headers and libraries for R 
RCPPFLAGS =         $(shell $(R_HOME)/bin/R CMD config --cppflags)
RLDFLAGS =      $(shell $(R_HOME)/bin/R CMD config --ldflags)
RBLAS =         $(shell $(R_HOME)/bin/R CMD config BLAS_LIBS)
RLAPACK =       $(shell $(R_HOME)/bin/R CMD config LAPACK_LIBS)

## if you need to set an rpath to R itself, also uncomment
#RRPATH :=      -Wl,-rpath,$(R_HOME)/lib

## include headers and libraries for Rcpp interface classes
RCPPINCL =      $(shell echo 'Rcpp:::CxxFlags()' | $(R_HOME)/bin/R --vanilla --slave)
RCPPLIBS =      $(shell echo 'Rcpp:::LdFlags()'  | $(R_HOME)/bin/R --vanilla --slave)


## include headers and libraries for RInside embedding classes
RINSIDEINCL =       $(shell echo 'RInside:::CxxFlags()' | $(R_HOME)/bin/R --vanilla --slave)
RINSIDELIBS =       $(shell echo 'RInside:::LdFlags()'  | $(R_HOME)/bin/R --vanilla --slave)

## compiler etc settings used in default make rules
CXX =           $(shell $(R_HOME)/bin/R CMD config CXX)
CPPFLAGS =      -Wall $(shell $(R_HOME)/bin/R CMD config CPPFLAGS)
CXXFLAGS =      $(RCPPFLAGS) $(RCPPINCL) $(RINSIDEINCL) $(shell $(R_HOME)/bin/R CMD 

config CXXFLAGS)
LDLIBS =        $(RLDFLAGS) $(RRPATH) $(RBLAS) $(RLAPACK) $(RCPPLIBS) $(RINSIDELIBS)

all: $(programs)
    @test -x /usr/bin/strip && strip $^

run: $(programs)
    @for p in $(programs); do echo; echo "Running $$p:"; ./$$p; done

clean:
    rm -vf $(programs)
    rm -vrf *.dSYM

runAll:
    for p in $(programs); do echo "Running $$p"; ./$$p; done

ここに画像の説明を入力してください

4

3 に答える 3

3

個人的には、Windowsのエディターによって保存されたMakefileで同じ問題に直面しました。その場合の原因は、 Makeファイル内のBOM(Byte Order Mark)であり、Makeを混乱させていました。

そうかどうかを確認するには、Makefile全体(またはヘッダーコメントを除く)を(手動で)コピーして、他のエディター/IDEで作成された新しいファイルに貼り付けることができます。また、WindowsでBOMを削除する方法についての優れた回答もあります。

于 2012-10-29T23:46:18.527 に答える
1

直前の行はLDLIBS明らかに次のようになっています。

config CXXFLAGS)

これにより、makefile構文エラーが生成されますが、行番号が1より大きいと予想されます。

于 2012-10-29T23:56:38.003 に答える
1

「Makefile.win」が正確なコピーである場合は、コマンドの前のすべてのスペースをタブに置き換えます。

すべて:$(プログラム)
<ここにタブを挿入、スペースなし> @test -x / usr / bin / strip && strip $ ^

run:$(programs)
<ここにタブを挿入、スペースなし> @for p in $(programs); エコーします。echo "Running $$ p:"; ./ $$ p; 終わり

clean:
<ここにタブを挿入、スペースなし> rm -vf $(programs)
<ここにタブを挿入、スペースなし> rm -vrf * .dSYM

runAll:
<ここにタブを挿入、スペースなし> $(programs);のp echo "Running$$p";を実行します。./ $$ p; 終わり

于 2012-10-29T23:18:49.813 に答える