moretz@topaz.rutgers.edu (Matthew Matlau) (07/25/89)
Ok all you windows developers - I just got the SDK, and can even get the "GENERIC" sample application to compile and link. Actually, it did compile, but when I try to link it I always get linker errors: undefined external: DBused . There a three undefined externals, all with the _DB prefix, all referenced in slibce.lib. What have I forgotten to do?
wells@dicome.UUCP.uucp (Richard Wells) (07/26/89)
In article <Jul.24.18.09.48.1989.20921@topaz.rutgers.edu> moretz@topaz.rutgers.edu (Matthew Matlau) writes: > >Ok all you windows developers - I just got the SDK, and >can even get the "GENERIC" sample application to compile and >link. Actually, it did compile, but when I try to link it I always get >linker errors: >undefined external: DBused > >. There a three undefined externals, all with the _DB prefix, all >referenced in slibce.lib. What have I forgotten to do? > > Actually, I was going to write a short note on this anyway; now I have an excuse to do it. I had the same problem. After talking it over with Microsoft (whose main response was the standard "reload the C libraries and try again") I realized that I loaded the SDK after loading QuickC 2.0. The SDK uses the original C libraries as a starting point, taking out a bunch of modules and adding in some new ones. One of the modules it takes out is CRT0, which in the QuickC libraries supplies the definitions of the _DB symbols which you get as unresolved. (My hunch is that they have something to do with QuickC's built-in DeBugger.) The solution is (as Microsoft suggested) to reload the original C libraries, then reload the SDK, and then reload the QuickC libraries. Its a bit of a pain, but it really only takes about 15 minutes. If you are going to use the SDK and QuickC, then I would suggest that you not let the SDK installation rename the windows libraries to the same names as the normal C libraries. Instead, always link your windows programs with the /NOD option and explicitly list xlibw and xlibcew (where x is your favorite memory model) on the link line. This way, QuickC can use the regular library names (xlibce).