I have a game playing engine written in C++. I have my own "development" GUI. The program is for sale in Japan and I have a Japanese publisher that has written an commercial GUI to join up with my game playing engine. We have had this arrangement for many years. Both my engine and his GUI are large, complex and undergo regular changes between releases. When my publisher wants a new version I will send him my source files which he then compiles along with his GUI, and his GUI will call a set of prearranged functions within my engine. It seems that every time we go through this process we always get tripped up by a compiler flag or two being different at his end than mine. This would be a very small problem if we both spoke the same language and were in the same time zone, but as we don't it seems that even the smallest issue can cause major headaches and delays.
Someone has suggested that if I sent him a library rather than the sources then this would reduce the chance of errors, whilst someone else said that I should send him the project files.... I'm not so sure of the pro's and con's of either.
Does anyone have any tips or suggestions to minimize the risk of glitches in this process. Is there any way I could make a run-time/compile-time check to make sure all the compile and link options are as expected?
EDIT: Just noticed this question about recording the compiler flags in GCC. It seems that GNU allows this. Is there an equivalent command for visual studio?