[R-pkg-devel] Note: information on .o files is not available / Found '_exit', possibly from '_exit' (C)
Dirk Eddelbuettel
edd @end|ng |rom deb|@n@org
Fri Jul 17 14:57:29 CEST 2020
On 17 July 2020 at 11:25, Fabio Sigrist wrote:
| I am trying to get an R package with C++ code on CRAN and I have one NOTE
| remaining, for which I can't find a solution:
|
| Note: information on .o files for x64 is not available
| File
| 'd:/RCompile/CRANincoming/R-devel/lib/gpboost/libs/x64/lib_gpboost.dll':
| Found '_exit', possibly from '_exit' (C)
| Found 'abort', possibly from 'abort' (C), 'runtime' (Fortran)
| Found 'exit', possibly from 'exit' (C), 'stop' (Fortran)
| Found 'printf', possibly from 'printf' (C)
|
| As much as I search through my code, I can't find the place / headers where
| these calls / symbols originate. Also, I have no idea how to add
| information on .o files (apart from the shared library, there are no .o
| files). The .tar.gz file for the package can be found on
| https://github.com/fabsig/GPBoost/blob/master/gpboost_0.2.0.tar.gz. Note
| that the shared library is compiled using install.libs.R (this is a
| deliberate choice) and the flag "GPB_R_BUILD" is set when compiling for the
| R package (I have tried to put "#ifndef GPB_R_BUILD" around all headers
| that could cause the problems with exit / abort calls, but apparently I
| have not been able to find all).
You will have to look harder. The external library, likely written without
knowledge of these (useful for R, otherwise arbitrary) constraint is likely
to contain exit(), (f)printf(), puts(), ... or alike.
If you want your package on CRAN, you need to change this. That's the price.
Code called from R cannot abort the session, and needs to communicate via R's
output streams.
Dirk
--
https://dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
More information about the R-package-devel
mailing list