C++ POCO ошибка сборки

Я пытаюсь использовать библиотеку POCO C++ в моем существующем проекте Windows CE на Visual Studio 2008.

Я скомпилировал библиотеку POCO, используя предоставленные файлы.bat. Я использовал один Nammed build_CE_vs90.cmd и он успешно сгенерировал несколько.lib файлов.

Однако заголовок библиотеки POCO (Foundation.h) имеет прагму для автоматической ссылки на нужный файл.lib:

#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

Проблема в том, что POCO_LIB_SUFFIX определяется как "mtd.lib", и у меня нет версии "mtd" библиотеки в каталоге, где находятся файлы.lib. у меня есть только PocoFoundation.lib а также PocoFoundationd.lib, но нет PocoFoundationmtd.lib, что вызывает ошибку при связывании, потому что файл не найден.

Я собираю свой проект, используя:

POCO_STATIC
POCO_NO_UNWINDOWS

Я открыл скрипт сборки.bat, и он содержит аргумент "static_mt", передаваемый в основной файл сборки:

@echo off
buildwin 90 build static_mt both WinCE samples

Что мне не хватает? Спасибо.

1 ответ

Вы компилируете свой проект с конфигурацией DEBUG, меняете его и undef POCO_STATIC (это многопоточная сборка), по какой-то причине вы скомпилировали общую версию, поэтому у вас есть файл .lib без каких-либо суффиксов.

Другие вопросы по тегам