3

I am trying to use the POCO C++ library in my existing Windows CE project on Visual Studio 2008.

I have compiled the POCO library using the provided .bat files. I used the one nammed build_CE_vs90.cmd and it successfully generated several .lib files.

However a header of the POCO library (Foundation.h) has a pragma to automatically link the right .lib file :

#if defined(_MSC_VER)
    #if defined(POCO_DLL)
        #if defined(_DEBUG)
            #define POCO_LIB_SUFFIX "d.lib"
        #else
            #define POCO_LIB_SUFFIX ".lib"
        #endif
    #elif defined(_DLL)
        #if defined(_DEBUG)
            #define POCO_LIB_SUFFIX "mdd.lib"
        #else
            #define POCO_LIB_SUFFIX "md.lib"
        #endif
    #else
        #if defined(_DEBUG)
            #define POCO_LIB_SUFFIX "mtd.lib"
        #else
            #define POCO_LIB_SUFFIX "mt.lib"
        #endif
    #endif

    #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Foundation_EXPORTS)
        #pragma comment(lib, "PocoFoundation" POCO_LIB_SUFFIX)
    #endif
#endif

The problem is that POCO_LIB_SUFFIX is defined as "mtd.lib" and I have no "mtd" version of the lib in the directory where the .lib files are. I only have PocoFoundation.lib and PocoFoundationd.lib, but no PocoFoundationmtd.lib, which is causing an error while linking because the file is not found.

I have compiling my project using :

POCO_STATIC
POCO_NO_UNWINDOWS

I openned the build .bat script and it does contain the argument "static_mt" passed to the main build file :

@echo off
buildwin 90 build static_mt both WinCE samples

What am I missing ? Thank you.

Virus721
  • 8,061
  • 12
  • 67
  • 123

1 Answers1

0

You're compiling your project with DEBUG config, change it and undef POCO_STATIC (it's the MultiThread build), for some reason you compiled the shared version, that's why you've the .lib file without any suffix.

nk125
  • 1
  • 1