[Rcpp-devel] Linking code in src/ subfolders
Balamuta, James Joseph
balamut2 at illinois.edu
Tue Mar 10 23:23:26 CET 2015
Greetings and Salutations All,
I'm trying to add structure to the src folder since the amount of files I have residing in the src directory could be better organized. Note: These files are made using RcppArmadillo.
E.g.
I'm looking to go from:
src/
|-> main.cpp
|-> testA.cpp
|-> testA.h
|-> testB.cpp
|-> testB.h
To a structure like:
src/
|-> main.cpp
|-> A
|-> testA.cpp
|-> testA.h
|-> B
|-> testB.cpp
|-> testB.h
Each file has a function:
main.cpp => testfunction(x)
testA.cpp => testfunctionA(x)
testB.cpp => testfunctionB(x)
To illustrate the issue, I have two repositories
SrcDir: https://github.com/coatless/header_cpp_subdir_code
SubdirSrc: https://github.com/coatless/header_cpp_code
If I compile without trying to change the folder structure, the package is made and is able to use without issue.
However, when I attempt to change the folder structure, I was getting a compiler error that identifies with a linking issue:
main.o:main.cpp:(.text+0x650a): undefined reference to `testfunctionA(arma::Col<double> const&)'
I looked at CRANs documentation for a suggested fix and ended up trying to ensure a link by using the makevars file (see: http://cran.r-project.org/doc/manuals/r-release/R-exts.html#Using-Makevars)
I made the following changes:
The Makevars file update seemed to work as the package then compiled.
(Exact changes to Makevars.win: https://github.com/coatless/header_cpp_subdir_code/blob/master/src/Makevars.win )
Herein lies the issues:
1. Any files I've written in the subdirectories are no longer exported to RcppExport.cpp even though they have a // [[Rcpp::export]] tag preceding the function declaration.
2. When I try to call the function in main.cpp (testfunction(x)), I receive:
testfunction(2^(1:5))
Error in .Call("SubdirSrc_testfunction", PACKAGE = "SubdirSrc", x) :
"SubdirSrc_testfunction" not available for .Call() for package "SubdirSrc"
Any suggestions would be appreciated.
Sincerely,
JJB
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20150310/268ae369/attachment.html>
More information about the Rcpp-devel
mailing list