更新时间:2023-11-24 11:37:58
处理标题时,您需要使用 包容守卫.在包含保护中,提供适当的函数定义.如果您的函数具有默认参数,请在头文件中仅包含默认参数.
When working with headers, you need to use an inclusion guard. Within the inclusion guard, provide the appropriate function definition. If your function has default parameters, include the default parameters only in the header file.
例如:
inst/include/add.h
#ifndef PACKAGENAME_ADD_H
#define PACKAGENAME_ADD_H
double add(double a = 0.1, double b = 0.2);
#endif
src/add.cpp
#include <Rcpp.h>
#include <add.h>
// [[Rcpp::export]]
double add(double a, double b) {
return a + b;
}
src/multiplyandadd.cpp
#include <Rcpp.h>
#include <add.h>
// [[Rcpp::export]]
double multiplyandadd(double a, double b, double c) {
return c*add(a, b);
}
src/Makevars
PKG_CPPFLAGS = -I../inst/include/