在R CMD安装中更改CXXFLAGS以开发R软件包
我正在调试我正在开发的一个包。我使用a来构建、检查和安装软件包。这些包是一个Rcpp包,因此其中已经有一个makevars和makevars.win文件。我要找的是一个只为特定的make规则而更改CXXFLAGS的方法。然后在R CMD安装中更改CXXFLAGS以开发R软件包,r,rcpp,R,Rcpp,我正在调试我正在开发的一个包。我使用a来构建、检查和安装软件包。这些包是一个Rcpp包,因此其中已经有一个makevars和makevars.win文件。我要找的是一个只为特定的make规则而更改CXXFLAGS的方法。然后makedebug将使用cxflags=-Wall-pedantic-g-O0运行rcmdinstall“但是常规的makeinstall将在没有任何调试信息的情况下运行cxflags=-O3。有没有一种不必修改我的包、个人或系统makevars文件就可以动态更改的好方法?我
makedebug
将使用cxflags=-Wall-pedantic-g-O0运行rcmdinstall
“
但是常规的makeinstall
将在没有任何调试信息的情况下运行cxflags=-O3
。有没有一种不必修改我的包、个人或系统makevars文件就可以动态更改的好方法?我不这么认为,因为只有一个cxflags
可以使用。但您可以在不同的“make”和“make debug”目标部分中重新分配
您可以只保留两个版本~/.R/Makevars.normal
amd~/R/Makevars.debug
,并使用脚本在它们之间翻转链接
为了它的价值。我只是编辑~/.R/Makevars
并注释/取消注释不同的行
编辑:根据您发布的Makefile
,类似这样的内容如何:
install: $(PKG_NAME)_$(PKG_VERSION).tar.gz
CXXFLAGS+="-O3" R CMD INSTALL $(PKG_NAME)_$(PKG_VERSION).tar.gz
debuginstall: $(PKG_NAME)_$(PKG_VERSION).tar.gz
CXXFLAGS+="-Wall -g -O0" R CMD INSTALL $(PKG_NAME)_$(PKG_VERSION).tar.gz
编辑2:我刚刚玩过这个,它可以工作:
PKG_NAME=digest
PKG_VERSION=0.5.1
install: $(PKG_NAME)_$(PKG_VERSION).tar.gz
PKG_CFLAGS="-O6" R CMD INSTALL $(PKG_NAME)_$(PKG_VERSION).tar.gz
debuginstall: $(PKG_NAME)_$(PKG_VERSION).tar.gz
PKG_CFLAGS="-Wall -g -O0" R CMD INSTALL $(PKG_NAME)_$(PKG_VERSION).tar.gz
之后它仍然读取my
~/.R/Makevars
,因此某些变量不能在这里设置。但是您可以在Makefile
中设置MYDEBUG=…
,然后在~/.R/Makevars的定义中使用它。您认为R核心团队会考虑允许这样的事情吗?也没有办法通过环境变量或类似的东西来实现吗?您可以做到使用环境变量;这是一个基本的make
功能。调试安装规则不起作用。/bin/sh:cxflags+=-Wall-pedantic-g-O0:未找到错误
它在您的系统上工作吗?我是直接拍摄的,但我对Makefiles做过类似的操作。尝试不使用+=
,只使用=
。否则分配给mycxflags
,并在Makefile
中将其展开为cxflags
正确。也要考虑<代码> PKGJCXFLAGS < /代码>。