So I think the only solution that CRAN will accept is linking against headers. I can download an ape.h header file, but for the life of me, I’m having trouble figuring out how to link it in my R package. I’ve read what I can find online, but haven’t been successful. Right now, I have the ape.h file in an src folder. I also have LinkingTo: Rcpp, ape In my DESCRIPTION file
But I’m getting all sorts of errors. Does anyone have an example of how I can do this that I might be able to work from? Thanks in advance!!!! Sharon From: Iris Simmons <ikwsi...@gmail.com> Date: Thursday, July 3, 2025 at 5:11 PM To: Sharon Bewick <sbew...@clemson.edu> Cc: Michael Chirico <michaelchiri...@gmail.com>, R Package Development <r-package-devel@r-project.org> Subject: Re: [R-pkg-devel] Two errors This Message Is From An External Sender: Use caution when opening links or attachments if you do not recognize the sender. I believe the suggestion was that you should alternatively write: .Call("seq_root2tip", nt$edge, length(nt$tip.label), nt$Nnode, PACKAGE = "ape") however, that generates the following note that CRAN is very unlikely to accept: * checking foreign function calls ... NOTE Foreign function call to a different package: .Call("seq_root2tip", ..., PACKAGE = "ape") See chapter 'System and foreign language interfaces' in the 'Writing R Extensions' manual. The other possibility is adding: importFrom(ape, seq_root2tip) to your NAMESPACE and not modifying your code, but that generates a different note: * checking foreign function calls ... NOTE Registration problem: symbol 'seq_root2tip' not in namespace: .Call(seq_root2tip, ...) See chapter 'System and foreign language interfaces' in the 'Writing R Extensions' manual. Your best bet is to ask the maintainers of package:ape to add and export an R function like this: idk <- function (...) .Call(seq_root2tip, ...) There are also ways to do it in C using R_RegisterCCallable and R_GetCCallable but that might be too complicated for something like this. On Thu, Jul 3, 2025 at 6:33 PM Sharon Bewick <sbew...@clemson.edu> wrote: > > Thanks so much for the tips! > > I think I’ve fixed #2. But I’m not sure what you mean by #1. Where should the > "seq_root2tip" with PACKAGE="ape" go? In the NAMESPACE file? In the > Description file? Somewhere in the code? > > So sorry for not understanding! > > Thanks! > Sharon > > From: Michael Chirico <michaelchiri...@gmail.com> > Date: Thursday, July 3, 2025 at 4:13 PM > To: Sharon Bewick <sbew...@clemson.edu> > Cc: R Package Development <r-package-devel@r-project.org> > Subject: Re: [R-pkg-devel] Two errors > > This Message Is From An External Sender: Use caution when opening links or > attachments if you do not recognize the sender. > 1. all functions in R are variables. You can "trick" code tools by writing > seq_root2tip=NULL in the same scope but consider (a) C routines are typically > part of a package's private interface (b) it might be preferable to use the > string "seq_root2tip" with PACKAGE="ape" > > 2. phytree is not the same as phytree<- : importFrom(phyloseq, "phytree<-") > is what you want assuming it's exported) > > (c.f. `x = phyteee(...)` vs. `phytree(x) <- ...`) > > Mike C > On Thu, Jul 3, 2025, 2:57 PM Sharon Bewick > <sbew...@clemson.edu<mailto:sbew...@clemson.edu>> wrote: > 1. I’m trying to upload my R package. However, I use the ape function > seq_root2tip but for the sake of speed am calling it using .Call: > > toroot<-.Call(seq_root2tip, nt$edge, length(nt$tip.label), nt$Nnode) > > How do I get R to recognize the seq_root2tip function from ape in this C > call? It is throwing up a NOTE that is getting my package rejected: > > shade_branch: no visible binding for global variable ‘seq_root2tip’ > > but seq_root2tip is a function, not a global variable. > > 2. I’m also getting a NOTE about: no visible global function definition for > ‘phy_tree<-’ > > I have declared phy_tree in the NAMESPACE file: importFrom(phyloseq,phy_tree) > > I don’t know what the problem is… > > Thanks! > Sharon > > [[alternative HTML version deleted]] > > ______________________________________________ > R-package-devel@r-project.org<mailto:R-package-devel@r-project.org> mailing > list > https://stat.ethz.ch/mailman/listinfo/r-package-devel<https://stat.ethz.ch/mailman/listinfo/r-package-devel> > > [[alternative HTML version deleted]] > > ______________________________________________ > R-package-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-package-devel<https://stat.ethz.ch/mailman/listinfo/r-package-devel> [[alternative HTML version deleted]] ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel