gpt4 book ai didi

c++ - := versus = error: undefined reference to qMain(int, 字符**)

转载 作者:可可西里 更新时间:2023-11-01 11:58:21 27 4
gpt4 key购买 nike

Qt 4.6.1

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

sources = ef.cpp

我收到以下错误:

RInside.h: No such file or directory

enter image description here

然后当我用 := 替换 = 时:

sources := ef.cpp

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

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

enter image description here

来自这里:https://stackoverflow.com/a/448939/462608

VARIABLE = value Normal setting of a variable - values within it are recursively expanded when the variable is used, not when it's declared

VARIABLE := value Setting of a variable with simple expansion of the values inside - values within it are expanded at declaration time.

我想了解这里发生了什么,以及解决方案是什么。

.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

关于c++ - := versus = error: undefined reference to qMain(int, 字符**),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13171263/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com