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 -- Russell Almond https://ralmond.net/ [[alternative HTML version deleted]] ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel