我正在尝试调试我正在开发的包。我使用makefile来构建、检查和安装软件包。这些包是一个 Rcpp 包,因此其中已经有一个 makevars 和 makevars.win 文件。我正在寻找的是仅针对特定的制作规则更改 CXXFLAGS 。然后make debug
将运行R CMD INSTALL
但CXXFLAGS= -Wall -pedantic -g -O0"
常规make install
将在CXXFLAGS=-O3
没有任何调试信息的情况下运行。有没有一种无需修改我的包、个人或系统 makevars 文件即可动态更改它的好方法?
问问题
1567 次
1 回答
2
我不这么认为,因为只有一个CXXFLAGS
可以去。但是您可以在不同的“make”和“make debug”目标部分重新分配。
你可以只保留两个版本~/.R/Makevars.normal
并~/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
之后它仍然会读取我的内容~/.R/Makevars
,因此无法在此处设置某些变量。但是你可以只设置MYDEBUG=...
你的Makefile
,然后在~/.R/Makevars
.
于 2011-12-28T20:53:03.503 回答