且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在 Rcpp 中的另一个 cpp 文件中定义的函数中使用在一个 cpp 文件中定义的函数

更新时间: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/