RInside and QtCreator

RInside and QtCreator

本文关键字:QtCreator and RInside      更新时间:2023-10-16

我在编译用QtCreator编写的项目时遇到问题。首先,该项目在OSX下运行良好(如果它是第一次开发的),并且不在Linux(Mint)下编译。我们首先必须纠正问题,因为Linux是区分大小写的,而OSX不是。

现在,我们遇到了一个无法解决的问题。

我们使用RInside API,它看起来像是一个链接问题。无论我们尝试什么,我们都会得到以下错误:

/home/patrick/Taf/rthing/src/IHM/main.cpp:8: erreur : undefined reference to `RInside::RInside(int, char const* const*, bool, bool, bool)'

以下是该项目的一些要素。

makefile的3行,包括对RInside:的调用

CXXFLAGS      = -pipe -Wno-unused-parameter -I/usr/share/R/include -I/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/Rcpp/include -I/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/RInside/include -g -std=gnu++0x -Wall -W -D_REENTRANT -fPIC $(DEFINES)
INCPATH       = -I../IHM -I. -I-I/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/Rcpp/include -I-I/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/RInside/include -I../../../../Qt/5.6/gcc_64/include -I../../../../Qt/5.6/gcc_64/include/QtSvg -I../../../../Qt/5.6/gcc_64/include/QtWidgets -I../../../../Qt/5.6/gcc_64/include/QtGui -I../../../../Qt/5.6/gcc_64/include/QtCore -I. -I../../../../Qt/5.6/gcc_64/mkspecs/linux-g++
LFLAGS        = -L/usr/lib/R/lib -lR -lblas -llapack -L/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/RInside/lib -lRInside -Wl,-rpath,/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/RInside/lib -Wl,-z,origin -Wl,-rpath,$$ORIGIN -Wl,-rpath,/home/patrick/Qt/5.6/gcc_64/lib

参考.pro文件的那些行:

RINSIDEINCL =           $$system($$R_HOM/bin/Rscript -e 'RInside:::CxxFlags()')
RINSIDELIBS =           $$system($$R_HOM/bin/Rscript -e 'RInside:::LdFlags()')
patrick@petitchat:/usr/lib/R/bin$ Rscript -e 'Rcpp:::CxxFlags()'

给出:

-I/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/Rcpp/include

Rscript -e 'Rcpp:::LdFlags()'

什么都不给(Mac也是这样)。

如果有人能帮忙,我可以提供更多关于这个项目的信息。

通过QtCreator使用有点超出了我们支持的规格。

我建议如下:

  • 通过qmake; makeexamples/qt中构建现有和正在运行的Qt示例
  • 使用它的设置来调整您从QtCreator获得的内容
  • 如果有你认为可以概括的东西,可以考虑将其作为拉取请求提交