【发布时间】:2017-12-03 18:47:15
【问题描述】:
我在做什么我正在使用 Rcpp 和 CMake 为 C++ 代码开发一个 R 接口/包。因为应该支持openmp和c++11,所以我对编译器有偏好。
问题 我知道我总是可以将 Makevars 放在 ~/.R (Unix) 下,以更改 R 在安装软件包时使用的编译器。但作为开发者,不建议这样做。
建议使用configure 文件来执行此操作。但是,我不太清楚如何实现这一点,因为我正在自己编写configure 文件并在我的configure 中调用cmake。我不知道在configure 文件中写什么来搜索特定的编译器。
希望描述清楚。谢谢。
我在下面附上了我的configure 文件内容。
```
set -x
set -e
which cmake
rm -rf _builds
# call cmake that will set compiler flags in src/Makevars
# and download dependencies
cmake -H. -B_builds
```
【问题讨论】:
-
如果你使用 cmake,你不应该使用配置脚本。
-
那么,安装时应该如何配置编译标志呢?我这样做是因为R-cpp core group 建议
-
OpenMP 和 C++11 在 R 本身支持的所有平台上都默认支持。如果您安装了推荐的工具链,则包括 macOS。你的所作所为让我觉得是错误的。
-
@DirkEddelbuettel 我想我不太明白
OpenMP and C++11 are supported by default on all platforms supporting it by R itself的意思。我确实了解 R 可以通过创建多个进程来实现并行化,所有平台都支持这一点。但我的经验是,如果您使用clang编译器来安装/编译需要-fopenmp标志的软件包,它将失败。就我而言,这正是我想做的。我的 C++ 代码需要-fopenmp支持,我想找到一种方法来更改R CMD系统使用的编译器。谢谢!
标签: cmake rcpp configure autoconf