- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想在 Rcpp 项目的 Makevars 中将 C++ 编译器标志设置为 -O0
。
如果我看一下/etc/R/Makeconf
,我发现编译命令似乎是
$(CXX) $(ALL_CPPFLAGS) $(ALL_CXXFLAGS) -c $< -o $@
自
ALL_CXXFLAGS = $(R_XTRA_CXXFLAGS) $(PKG_CXXFLAGS) $(CXXPICFLAGS) $(SHLIB_CXXFLAGS) $(CXXFLAGS)
我可以在 Makevars 中编辑变量 $(PKG_CXXFLAGS)
来为特定库添加 header ,但我对 CXXFLAGS = -O3 -pipe -g $(LTO) 不满意
。我还希望能够直接在 Makevars 中执行此操作,以便根据我的需要调整每个项目。
当我在 Makevar 中编辑 CXXFLAGS
时,没有任何反应。是否可以调整该变量?另一种方法可能吗?我知道我可以编辑 ~/.R/Makevars
,并根据要求进行切换。我想知道是否有更稳健的方法。
最佳答案
您通常需要在本地文件中使用 PKG_*
变体,例如~/.R/Makevars
.
这是我的(缩短、编辑的)部分:
## for C code
CFLAGS= -O3 -g0 -Wall -pipe -pedantic -std=gnu99
## for C++ code
#CXXFLAGS= -g -O3 -Wall -pipe -Wno-unused -pedantic -std=c++11
CXXFLAGS= -g -O3 -Wall -pipe -Wno-unused -pedantic
## for Fortran code
#FFLAGS=-g -O3 -Wall -pipe
FFLAGS=-O3 -g0 -Wall -pipe
## for Fortran 95 code
#FCFLAGS=-g -O3 -Wall -pipe
FCFLAGS=-O3 -g0 -Wall -pipe
VER=-4.8
CC=ccache gcc$(VER)
CXX=ccache g++$(VER)
SHLIB_CXXLD=g++$(VER)
FC=ccache gfortran
F77=ccache gfortran
MAKE=make -j8
另一种(系统全局)方法是创建和编辑 /etc/R/Makeconf.site
(或者,当 /etc/R/
不存在时, $RHOME/etc/R/Makeconf.site
.
关于c++ - 在 Rcpp Makevars 中设置 CXXFLAGS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22555526/
我试图了解 ~/.R/Makevars 中设置的宏/变量的作用和关系和 package_directory/src/Makevars安装/构建自己的 R 包时。假设这些文件看起来像 ~/.R/Make
问题 我试图告诉我的包使用 gcc 来编译 C++ 代码而不是 clang。为什么我的 Makevars 文件中的 CXX 标志没有被使用? (我期待/希望解决方案是我忽略的非常简单的东西。) 据我了
我正在尝试在 Centos 6 上安装 R 包“lubridate”。因为 lubridate 需要比 Centos 6 上的标准编译器更新的 g++ 版本,所以我下载并编译了 gcc 4.9 版本(
我写了一个C++包“P”。它有一个 R 接口(interface)包“RP”,使用 Rcpp 构建。 P 直接使用 Make 进行编译,但为了可移植性而切换到 CMake。 CMake 用于查找系统范
我们的 R 安装定义为: R$HOME/etc/Makeconf that CC = gcc -std=gnu99 我有一个特定的包(C++ 和 C 代码的混合)需要使用 CC = gcc 没有
我没有 ~/.R/Makevars文件和 > tools::makevars_user() character(0) > tools::makevars_site() character(0) 然而,
我想在 Rcpp 项目的 Makevars 中将 C++ 编译器标志设置为 -O0。 如果我看一下/etc/R/Makeconf,我发现编译命令似乎是 $(CXX) $(ALL_CPPFLAGS) $
我已经查看了多个地方,但没有找到一个简单的例子来解决我的问题。 我需要的是能够使用我拥有的多个 .so 文件(连同 .h 文件)。 一个简单的例子是: 我有以下文件:a.h、a.cpp 函数 jede
我有一个 R 包,我将包含矩阵代数的 MCMC 算法移动到了 C++使用 RcppEigen包大大提高了速度。 然而,R CMD check给出以下 NOTE在 Linux ( Thanks to R
作为我博士项目的一部分,我完全重新设计了 R 包的早期草案 quantspec .我上传了通过 BUILD 获得的 tar.gz 文件后,使用 webform 在我的 Windows 7 计算机上通过
我正在开发一个包,其中包含来自第三方库 (SUNDIALS) 的 C 代码。该包编译和工作(即,能够解决测试 ODE)与以下 Makevars 文件执行静态链接 CXX=clang++ PKG_CPP
我试图了解在安装/构建自己的R包时在~/.R/Makevars和package_directory/src/Makevars中设置的宏/变量的作用和关系。假设这些文件看起来像 〜/ .R / Make
我有这个独立的 C++ 代码我正试图用 R 包装包。 我的问题是我绝对希望它与-O3 标志开启。 所以在 src/Makevars 文件中我说: PKG_CPPFLAGS = -I../inst/in
根据Rcpp FAQ (2.15。新的“无链接”功能如何),自 Rcpp 版本 0.11.0 以来,我们可以避免在 Makevars 文件中指定 LAPACK/BLAS/Fortran,事实上,如果我
通常当我从源代码安装 R 包时,它是一个 *.tar.gz 文件。我想弄乱一些 ./src/Makevars 标志而不解压缩,编辑 Makevars,重新压缩,然后安装。所以我正在尝试使用 R CMD
我正在 Mac OSX 上开发一个 R 包,带有一些低级 C/C++ 代码和 openMP 支持。 C++代码是使用Rcpp包编写的。我的全局“Makevars”文件位于 ~/.R/ 文件夹下。该文件
我是一名优秀的程序员,十分优秀!