Создатель Pantheios в Qt с компилятором VS C ++ 2008

Я не могу скомпилировать свой проект, который использует Pantheios (версия 1.0.1-бета210) вход в систему Qt Creator (создатель 2.5.2 + SDK 4.8.2, скомпилированный из исходников компилятором VS2008) с VS2008 C ++ компилятор.
Но это работает с Visual Studio 2008!

  1. Во-первых, я скомпилировал библиотеку Pantheios, так как она должна использовать командную строку VS и nmake с путем pantheios_path\build\vc9\

  2. Затем я написал простую программу Qt, использующую VS2008 с Qt Addin, и она отлично работает:

    #include <pantheios/pantheios.hpp>
    #include <pantheios/inserters/args.hpp>
    #include <pantheios/backends/bec.WindowsConsole.h>
    
    #include <pantheios/implicit_link/core.h>
    #include <pantheios/implicit_link/fe.simple.h>
    #include <pantheios/implicit_link/be.WindowsConsole.h>
    
    #include <QApplication>
    #include "MainWindow.h"
    extern "C" const char PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("play.with.logger");
    
    int main(int argc, char *argv[])
    {
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    
    pantheios::log(pantheios::debug, "debug processing condition");
    
    return a.exec();
    }
    
  3. Но когда я экспортирую его в проект Qt Creator, он не хочет связываться с ошибками:

    pantheios.1.util.vc9.dll.debug.lib(util.bailout.dll.debug.obj) : error LNK2019: unresolved external symbol __imp__RegCloseKey@4 referenced in function _pantheios_util_onBailOut_canUseWarnMessage_x_
    pantheios.1.util.vc9.dll.debug.lib(util.time.dll.debug.obj) : error LNK2001: unresolved external symbol __imp__RegCloseKey@4
    pantheios.1.util.vc9.dll.debug.lib(util.bailout.dll.debug.obj) : error LNK2019: unresolved external symbol __imp__RegQueryValueExA@24 referenced in function _pantheios_util_onBailOut_canUseWarnMessage_x_
    pantheios.1.util.vc9.dll.debug.lib(util.time.dll.debug.obj) : error LNK2001: unresolved external symbol __imp__RegQueryValueExA@24
    pantheios.1.util.vc9.dll.debug.lib(util.bailout.dll.debug.obj) : error LNK2019: unresolved external symbol __imp__RegOpenKeyA@12 referenced in function _pantheios_util_onBailOut_canUseWarnMessage_x_
    pantheios.1.util.vc9.dll.debug.lib(util.time.dll.debug.obj) : error LNK2001: unresolved external symbol __imp__RegOpenKeyA@12
    pantheios.1.util.vc9.dll.debug.lib(util.bailout.dll.debug.obj) : error LNK2019: unresolved external symbol __imp__DeregisterEventSource@4 referenced in function _pantheios_onBailOut3
    pantheios.1.util.vc9.dll.debug.lib(util.bailout.dll.debug.obj) : error LNK2019: unresolved external symbol __imp__ReportEventA@36 referenced in function _pantheios_onBailOut3
    pantheios.1.util.vc9.dll.debug.lib(util.bailout.dll.debug.obj) : error LNK2019: unresolved external symbol __imp__RegisterEventSourceA@8 referenced in function _pantheios_onBailOut3
    debug\Logging3.exe : fatal error LNK1120: 6 unresolved externals
    

    Кстати, в project.pro файл, который я установил:

    ...
    INCLUDEPATH += $(STLSOFT)/include \
    $(PANTHEIOS_ROOT)/include
    
    LIBS += -L$(PANTHEIOS_ROOT)/lib
    ...
    
  4. Также я попытался изменить переменную LIBS следующим образом:

    LIBS += d:\workspaces\VS\pantheios-1.0.1-beta210_32\lib\pantheios.1.util.vc9.dll.debug.lib \
    d:\workspaces\VS\pantheios-1.0.1-beta210_32\lib\pantheios.1.core.vc9.dll.debug.lib \
    d:\workspaces\VS\pantheios-1.0.1-beta210_32\lib\pantheios.1.fe.simple.vc9.dll.debug.lib \
    d:\workspaces\VS\pantheios-1.0.1-beta210_32\lib\pantheios.1.bec.WindowsConsole.vc9.dll.debug.lib \
    d:\workspaces\VS\pantheios-1.0.1-beta210_32\lib\pantheios.1.be.WindowsConsole.vc9.dll.debug.lib
    

    И получите это:

    pantheios.1.util.vc9.dll.debug.lib(util.bailout.dll.debug.obj) : error LNK2019: unresolved external symbol __imp__RegCloseKey@4 referenced in function _pantheios_util_onBailOut_canUseWarnMessage_x_
    pantheios.1.util.vc9.dll.debug.lib(util.time.dll.debug.obj) : error LNK2001: unresolved external symbol __imp__RegCloseKey@4
    pantheios.1.util.vc9.dll.debug.lib(util.bailout.dll.debug.obj) : error LNK2019: unresolved external symbol __imp__RegQueryValueExA@24 referenced in function _pantheios_util_onBailOut_canUseWarnMessage_x_
    pantheios.1.util.vc9.dll.debug.lib(util.time.dll.debug.obj) : error LNK2001: unresolved external symbol __imp__RegQueryValueExA@24
    pantheios.1.util.vc9.dll.debug.lib(util.bailout.dll.debug.obj) : error LNK2019: unresolved external symbol __imp__RegOpenKeyA@12 referenced in function _pantheios_util_onBailOut_canUseWarnMessage_x_
    pantheios.1.util.vc9.dll.debug.lib(util.time.dll.debug.obj) : error LNK2001: unresolved external symbol __imp__RegOpenKeyA@12
    pantheios.1.util.vc9.dll.debug.lib(util.bailout.dll.debug.obj) : error LNK2019: unresolved external symbol __imp__DeregisterEventSource@4 referenced in function _pantheios_onBailOut3
    pantheios.1.util.vc9.dll.debug.lib(util.bailout.dll.debug.obj) : error LNK2019: unresolved external symbol __imp__ReportEventA@36 referenced in function _pantheios_onBailOut3
    pantheios.1.util.vc9.dll.debug.lib(util.bailout.dll.debug.obj) : error LNK2019: unresolved external symbol __imp__RegisterEventSourceA@8 referenced in function _pantheios_onBailOut3
    debug\Logging3.exe : fatal error LNK1120: 6 unresolved externals
    

Я также пробовал разные комбинации:

LIBS += -L$(PANTHEIOS_ROOT)/lib -llibname_without_extension

Кто-нибудь может дать мне полезный совет? Может быть, кто-то использует Pantheios под Qt Creator …

1

Решение

Пожалуйста, найдите функции в MSDN, и вы сможете узнать, какие библиотеки вы пропустили. Например, к символу «_чертенок_RegCloseKey @ 4 », поищите« RegCloseKey »в MSDN, и вы обнаружите, что пропустили« Advapi32.lib ». Затем вы должны добавить эту библиотеку в свой .pro файл.

LIBS += -lAdvapi32
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]