Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Makefile.win:1:**缺少分隔符。停止_Makefile_Gnu Make - Fatal编程技术网

Makefile.win:1:**缺少分隔符。停止

Makefile.win:1:**缺少分隔符。停止,makefile,gnu-make,Makefile,Gnu Make,我知道此错误与缺少选项卡有关,但不知何故,我无法找出第1行中缺少选项卡的位置: 生成文件: ## -*- 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

我知道此错误与缺少选项卡有关,但不知何故,我无法找出第1行中缺少选项卡的位置:

生成文件:

## -*- 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

如果您的“Makefile.win”是一个完全相同的副本,则将命令前面的所有空格替换为制表符:

全部:$(程序)
@测试-x/usr/bin/strip和strip$^

运行:$(程序)
@对于p,单位为美元(项目);做回音;echo“Running$$p:;”/$$P完成

清洁:
rm-vf$(程序)
rm-vrf*.dSYM

runAll:
对于p,单位为美元(项目);执行echo“Running$$p”/$$P完成

如果您的“Makefile.win”是一个完全相同的副本,则将命令前面的所有空格替换为制表符:

全部:$(程序)
@测试-x/usr/bin/strip和strip$^

运行:$(程序)
@对于p,单位为美元(项目);做回音;echo“Running$$p:;”/$$P完成

清洁:
rm-vf$(程序)
rm-vrf*.dSYM

runAll:
对于p,单位为美元(项目);执行echo“Running$$p”/$$P完成


就我个人而言,我在Windows上的某个编辑器保存的Makefile中也遇到了同样的问题。当时的原因是Makefile中的一个错误,使Make感到困惑


要检查是否是这样,您可以(手动)将整个Makefile(或者除了标题注释)复制并粘贴到在其他编辑器/IDE中创建的新文件中。这里还介绍了如何删除Windows上的BOM。

我个人在Windows上的某个编辑器保存的Makefile中遇到了同样的问题。当时的原因是Makefile中的一个错误,使Make感到困惑


要检查是否是这样,您可以(手动)将整个Makefile(或者除了标题注释)复制并粘贴到在其他编辑器/IDE中创建的新文件中。这里还介绍了如何删除Windows上的BOM。

LDLIBS前面的一行显然是:

config CXXFLAGS)

这将生成一个makefile语法错误,但我希望它的行号大于1。

LDLIBS前面的行显然是:

config CXXFLAGS)

这将生成一个makefile语法错误,但我希望它的行号大于1。

我无法重现您的错误。我建议尽量减少示例—删除行并进行测试,直到找到导致此错误的最小、最简单的makefile。告诉我们您正在使用哪个版本的Make(
Make-v
)可能也很有用。这几乎总是相同的问题:您的食谱(shell命令)必须以制表符开头。您似乎在使用空格。@reinierpost,错误消息是否表明第1行有问题?或者这是微软迷人的怪癖之一?这不是微软的怪癖。我无法重现你的错误。我建议尽量减少示例—删除行并进行测试,直到找到导致此错误的最小、最简单的makefile。告诉我们您正在使用哪个版本的Make(
Make-v
)可能也很有用。这几乎总是相同的问题:您的食谱(shell命令)必须以制表符开头。您似乎在使用空格。@reinierpost,错误消息是否表明第1行有问题?或者这是微软迷人的怪癖之一?这不是微软的怪癖。感谢你。这是Windows的“该死的”
Notepad
的错误!那该死的东西在第1行显示错误。我将makefile复制到Linux并通过Kwrite打开它。然后编译器在“正确”的行号上显示了错误。感谢您。这是Windows的“该死的”
Notepad
的错误!那该死的东西在第1行显示错误。我将makefile复制到Linux并通过Kwrite打开它。然后编译器在“正确”的行号上显示了错误。在“将问题发布到这里”之前,我“已经”这样做了。但是我不知道这个记事本是怎么处理账单的!当我将makefile复制到Linux并通过Kwrite打开它时,我意识到我“再次”必须用新选项卡替换这些选项卡!我在把问题贴在这里之前已经做过了。但是我不知道这个记事本是怎么处理账单的!当我将makefile复制到Linux并通过Kwrite打开它时,我意识到我“再次”必须用新选项卡替换这些选项卡!Eldar和@Beta:请阅读我对以下两个答案的评论。谢谢你的帮助。艾达和@Beta:请阅读我对以下两个答案的评论。谢谢你的帮助。