To add to the oddity, this works:
Declare Library ".\chess\chessdat\mem" ' S McNeill CPU load tracking, Linux uses sensors
Notice the $EXEIcon has no problem finding the resource based off from where the .BAS file is located. (It's in the /chess folder.)
The call to DECLARE LIBRARY, however, needs a path to be in relation to QB64.EXE, rather than where the chess.BAS is located.
It doesn't appear that DECLARE LIBRARY is looking for files in relation to the source code's folder, even if Export EXE to Source Folder is selected in the options.
To sum up the odd behavior I'm seeing here:
".\mem" *will* look in the folder with the BAS file and find our header file.
"mem" doesn't, though it seems like it should default to the same directory as the BAS file.
".\chessdat\mem" doesn't find the file, even though there's a copy of it inside the "chessdat" folder. For whatever reason, it can't find the relative folder and the file inside it.