[R-pkg-devel] Package Load fails to find 3rd Party DLL
Jeff Newmiller
jdnewm|| @end|ng |rom dcn@d@v|@@c@@u@
Wed Jul 12 16:00:14 CEST 2023
Use of precompiled code is not allowed in CRAN. This looks like your package needs to be distributed elsewhere... e.g. via GitHub.
On July 12, 2023 6:41:11 AM PDT, Russell Almond <russell.g.almond using gmail.com> wrote:
>I have an R package (RNetica available at
>https://ralmond.r-universe.dev/RNetica and
>https://github.com/ralmond/RNetica) which links to a 3rd party library
>Netica.dll, so RNetica.dll (built from my C code) calls the 3rd party code.
>
>The config.win script downloads Netica.dll and moves it into the
>libs/x64 directory, where it should get loaded when RNetica.dll is
>loaded. However this is not happening:
>
>Here is the relevant portion of the build log (build is on R-universe,
>but I think it is the same script as CRAN):
>
>```
>
>cp
>"/d/a/ralmond/ralmond/RNETIC~1.RCH/00_PKG~1/RNetica/src/Netica/Netica_API_5
>10/lib64/Netica.dll"
>"D:/a/ralmond/ralmond/RNetica.Rcheck/00LOCK-RNetica/00new/R
>Netica/libs/x64"
> cp
>"/d/a/ralmond/ralmond/RNETIC~1.RCH/00_PKG~1/RNetica/src/Netica/Netica_API_5
>10/lib64/Netica.lib"
>"D:/a/ralmond/ralmond/RNetica.Rcheck/00LOCK-RNetica/00new/R
>Netica/libs/x64"
> C:\rtools43\x86_64-w64-mingw32.static.posix\bin\nm.exe: 'NeticaDLL':
>No such f
>ile
> gcc -shared -s -static-libgcc -o RNetica.dll tmp.def Cases.o
>Continuous.o Edge
>s.o Experience.o Inference.o Networks.o Node.o Random.o Registration.o
>Session.o
> -L.
>-LD:/a/ralmond/ralmond/RNetica.Rcheck/00LOCK-RNetica/00new/RNetica/libs/x64
> -lNetica -LC:/rtools43/x86_64-w64-mingw32.static.posix/lib/x64
>-LC:/rtools43/x8
>6_64-w64-mingw32.static.posix/lib -LC:/R/bin/x64 -lR
> C:\rtools43\x86_64-w64-mingw32.static.posix\bin/ld.exe: internal
>error: aborti
>ng at ../../binutils-2.40/ld/ldlang.c:527 in compare_section
> C:\rtools43\x86_64-w64-mingw32.static.posix\bin/ld.exe: please report
>this bug
> collect2.exe: error: ld returned 1 exit status
>```
>
>A little bit of searching on the internet, indicates that Windows
>sometimes reports Dll A not found when Dll A needs Dll B and it can't
>find B.
>
>This used to work under older versions of R and the tool chain and I
>don't think I've changed anything related to the C side of the code.
>
>1) Have the paths changed, so I no longer should be moving the (64 bit
>version of the) 3rd party DLL to `libs/x64`?
>
>2) Is there something that has changed with the mingw tools (nm.exe and
>ld.exe) which are changing things?
>
>3) Is there a change on how win32 and win64 variants are handled (I have
>both 32 and 64 bit copies of the 3rd party DLL, I just need to move them
>to the right places).
>
>Thanks for any enlightenment you can offer,
>
> --Russell Almond
>
>
>
>
--
Sent from my phone. Please excuse my brevity.
More information about the R-package-devel
mailing list