about integration of a library into package creation
Nicolas Turenne wrote:
i follow your recommendation writing this :
in the description file
Depends: R (>= 2.3), quadprog, ade4, spdep
Imports: quadprog, ade4, spdep
in the namespace file
useDynLib(quadprog)
useDynLib(spdep)
useDynLib(ade4)
importFrom("ade4", "dist.dudi")
importFrom("quadprog", "solve.QP")
importFrom("ade4", "mstree")
importFrom("ade4", "neig2mat")
importFrom("ade4", "dist.dudi")
importFrom("ade4", "dudi.pca")
importFrom("ade4", "dudi.coa")
importFrom("spdep", "knearneigh")
and the result of compiling is :
preparing package svcR for lazy loading
Erreur dans loadNamespace(ns, lib.loc) : le package 'quadprog' n'a pas
d'espace de noms
Ex?cution arr?t?e
make: *** [lazyload] Error 1
*** Installation of svcR failed ***
it says that quadprog has not a namespace
perhaps it is due to location of quadprog.dll
i have put it into inst/src directory
If you want to use the CRAN package quadprog, you should import its functionality, but do NOT load its dynamic library with useDynLib(), this will be done by the namespace mechanismsm. Why do you want to put its dll anywhere? Simply install the package quadprog and use it in your namespace by the import directives! Uwe Ligges
thank for help Nicolas Uwe Ligges a ?crit :
Nicolas Turenne wrote:
your answer is correct after checking some doc
but examples are rare
when i write in the description file
Depends: R (>= 2.3), quadprog, ade4, spdep
and in the namespcae file
useDynLib(quadprog)
useDynLib(spdep)
useDynLib(ade4)
importFrom("dist.dudi", "ade4")
Please do it the right way (package name first!):
importFrom("ade4", "dist.dudi")
Uwe Ligges
importFrom("solve.QP", "quadprog")
importFrom("mstree", "ade4")
importFrom("neig2mat", "ade4")
importFrom("dist.dudi", "ade4")
importFrom("dudi.pca", "ade4")
importFrom("dudi.coa", "ade4")
importFrom("knearneigh", "spdep")
i obtain :
Namespace dependencies not required:
dist.dudi dudi.coa dudi.pca knearneigh mstree neig2mat solve.QP
if i delete the importFrom lines
i get an error about "loading / namespace not succesful" for svcr
i think the solution is not far but it is disturbing
thank for help
---
Nicolas
Duncan Murdoch a ?crit :
On 6/12/2006 12:25 PM, Nicolas Turenne wrote:
in that sense, it is useless to load the library from R source code making my package which is supposed to include it and load it so if i understand the R philosophy it is not possible to load dll from outside ; the user has to load my package and manually has to load the necessary libraries each time he has to use my library, right ?
Not at all. When set up correctly, the user should just need to say library(svcR) and all necessary packages and DLLs will be loaded. The way to specify other packages is through the "Depends" line in the DESCRIPTION file, and/or the import/importFrom lines in your NAMESPACE file. Duncan Murdoch
-- Nicolas Prof Brian Ripley a ?crit :
And also to load the package, maybe with rterm R_DEFAULT_PACKAGES=NULL
library(svcR)
as these messages often indicate missing package dependencies.
* checking package subdirectories ... WARNING
Subdirectory 'src' contains no source files.
* checking R files for syntax errors ... OK
* checking R files for library.dynam ... OK
* checking S3 generic/method consistency ... WARNING
Erreur : le chargement du package / espace de noms a echoue'
pour 'svcR'
Sequence d'appel :
2: stop(gettextf("package/namespace load failed for '%s'",
libraryPkgName(packag
e)),
call. = FALSE, domain = NA)
1: library(package, lib.loc = lib.loc, character.only = TRUE,
verbose =
FALSE)
Execution arrete'e
See section 'Generic functions and methods' of the 'Writing R
Extensions'
manual.
* checking replacement functions ... WARNING
Erreur : le chargement du package / espace de noms a echoue'
pour 'svcR'
Sequence d'appel :
2: stop(gettextf("package/namespace load failed for '%s'",
libraryPkgName(packag
e)),
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel