:=相对=错误:未定义引用qMain(int,char **)

Qt 4.6.1

在下面的.pro文件中,当我使用该语句时

sources = ef.cpp 

我得到以下错误:

 RInside.h: No such file or directory 

在这里输入图像描述

那么当我replace= =时:= like:

 sources := ef.cpp 

上面的错误消失了,我得到一个新的错误:

 error: undefined reference to qMain(int, char**) 

在这里输入图像描述

从这里: https : //stackoverflow.com/a/448939/462608

VARIABLE = valuevariables的普通设置 – 当使用variables时,其中的值是recursion扩展的,而不是在声明时

VARIABLE:= value设置一个简单的扩展值的variables – 它内部的值在声明时被扩展。

我想了解这里发生了什么,解决scheme是什么。

的.cpp

 #include <RInside.h> int main(int argc, char *argv[]) { RInside R(argc, argv); R["txt"] = "Hello, world!\n"; R.parseEvalQ ("cat(txt)"); exit(0); } 

的.pro

 TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . R_HOME := 'c:/R-2.15.1' # Input sources = ef.cpp programs := $(sources:.cpp=) ## include headers and libraries for R RCPPFLAGS := $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config --cppflags) RLDFLAGS := $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config --ldflags) RBLAS := $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config BLAS_LIBS) RLAPACK := $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config LAPACK_LIBS) ## include headers and libraries for Rcpp interface classes RCPPINCL := $(shell echo 'Rcpp:::CxxFlags()' | $(R_HOME)/bin/R $(R_ARCH) --vanilla --slave) RCPPLIBS := $(shell echo 'Rcpp:::LdFlags()' | $(R_HOME)/bin/R $(R_ARCH) --vanilla --slave) ## include headers and libraries for RInside embedding classes RINSIDEINCL := $(shell echo 'RInside:::CxxFlags()' | $(R_HOME)/bin/R $(R_ARCH) --vanilla --slave) RINSIDELIBS := $(shell echo 'RInside:::LdFlags()' | $(R_HOME)/bin/R $(R_ARCH) --vanilla --slave) ## compiler etc settings used in default make rules CXX := $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config CXX) CPPFLAGS := -Wall $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config CPPFLAGS) #CXXFLAGS := $(RCPPFLAGS) $(RCPPINCL) $(RINSIDEINCL) $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config CXXFLAGS) QMAKE_CXXFLAGS := $(RCPPFLAGS) $(RCPPINCL) $(RINSIDEINCL) $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config CXXFLAGS) LDFLAGS = -s QMAKE_LIBS := $(RLDFLAGS) $(RBLAS) $(RLAPACK) $(RINSIDELIBS) $(RCPPLIBS) CC := $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config CXX) 

这看起来不像一个Qt项目,所以你应该禁用Qt库的链接。 设置QTCONFIG为空:

 QT = CONFIG = 

如果另一方面,这一个Qt项目,应该链接到Qt库,那么问题是,你正在覆盖重要的变量,如QMAKE_LIBSQMAKE_CXXFLAGS 。 使用+= ,而不是:= 。 另外,使用LIBS而不是QMAKE_LIBS