Is there any way to hide them in some sub-directory?They just need to be either in the same directory as the dll that needs them, or a directory that's in the path.
If you want to put them in some sub-folder that's not necessarily in the path, it *might* (untested) work if your Inline::C script were to start with:
BEGIN {
$ENV{PATH} .= ";.\\wherever\\they\\are;"
};
It seems odd that you're still forced to ship those 2 dll files. You did add those flags to 'g++', and not 'gcc' ?
If you build your script with BUILD_NOISY you'll be able to check the output to see that they were present when the g++ command was run.
The other thing you can do is to check that the Inline::C dll doesn't contain a dependency on either of those 2 gcc dlls:
objdump -x your_I-C.dll | grep "DLL Name"
If the output of that mentions either of the 2 gcc dlls, then the Inline::C build wasn't done right.
And if the output does *not* mention either of the 2 gcc dlls, but you still need to ship them, then it must be some other dll that depends upon them. (If you're not shipping any other dlls then perhaps there's something wrong with the path setting on the client machine.)
Cheers,
Rob