Visual Studio, OSG, Qt

di il
9 risposte

Visual Studio, OSG, Qt

Salve a tutti!

Dovrei usare questi tre programmi per un progetto di grafica 3D, ma evidentemente faccio vari errori di configurazione perché al momento non sono riuscito a compilare neanche un semplicissimo programma - che richiedeva soltanto di inizializzare il l'OSG.

Potreste darmi delle dritte, per favore?
uso Visual Studio 2005
Qt 4.4.3
OpenSG

Linguaggio di programmazione C++
Sistema operativo: windows XP

Grazie mille!!

9 Risposte

  • Re: Visual Studio, OSG, Qt

    Per essere più chiari, questo è il programma:

    #include <QtGui/QApplication>
    #include <OpenSG/OSGConfig.h>
    #include <OpenSG/OSGNode.h>
    #include <OpenSG/OSGSimpleGeometry.h>
    #include <OpenSG/OSGSimpleSceneManager.h>

    using namespace std;
    using namespace osg;



    int main(int argc, char *argv[])
    {
    osgInit(argc,argv); // Init the OpenSG subsystem
    QApplication a(argc, argv);
    a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));

    return a.exec();
    }


    Questo è il build log:

    Build Log Build started: Project: Prova2, Configuration: Debug|Win32
    Command Lines Creating temporary file "c:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Prova2\Debug\RSP00002928004828.rsp" with contents
    [
    /Od /I ".\GeneratedFiles\Debug" /I "C:\Program Files\OpenSG\include" /I "C:\Qt\4.4.3\include\QtOpenGL" /I "C:\Qt\4.4.3\include\Qt3Support" /I "C:\Qt\4.4.3\include\QtGui" /I "C:\Qt\4.4.3\include\QtCore" /I "C:\Qt\4.4.3\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "QT_LARGEFILE_SUPPORT" /D "QT_NO_DEBUG" /D "NDEBUG" /D "_UNICODE" /Gm /EHsc /RTC1 /MDd /Fo"Debug\\" /Fd"Debug\vc80.pdb" /W1 /c /TP ".\main.cpp"
    ]
    Creating command line "cl.exe @"c:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Prova2\Debug\RSP00002928004828.rsp" /nologo /errorReport:prompt"
    Creating temporary file "c:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Prova2\Debug\RSP00002A28004828.rsp" with contents
    [
    /OUT:"C:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Debug\Prova2.exe" /LIBPATH:"C:\Program Files\OpenSG\lib" /LIBPATH:"C:\Qt\4.4.3\lib" /MANIFEST /MANIFESTFILE:"Debug\Prova2.exe.intermediate.manifest" /DEBUG /PDB:"c:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\debug\Prova2.pdb" /SUBSYSTEM:WINDOWS /MACHINE:X86 /NODEFAULTLIB:msvcrtd.lib qtmain.lib QtCore4.lib QtGui4.lib Qt3Support4.lib comdlg32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

    ".\Debug\main.obj"
    ]
    Creating command line "link.exe @"c:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Prova2\Debug\RSP00002A28004828.rsp" /NOLOGO /ERRORREPORT:PROMPT"
    Output Window Compiling...
    cl : Command line warning D9007 : '/Gm' requires '/Zi or /ZI'; option ignored
    main.cpp
    Linking...
    main.obj : error LNK2019: unresolved external symbol "bool __cdecl osg::osgInit(int,char * *)" (?osgInit@osg@@YA_NHPAPAD@Z) referenced in function _main
    main.obj : error LNK2019: unresolved external symbol ___security_cookie referenced in function _main
    main.obj : error LNK2019: unresolved external symbol ___CxxFrameHandler3 referenced in function __ehhandler$_main
    main.obj : error LNK2019: unresolved external symbol @__security_check_cookie@4 referenced in function __ehhandler$_main
    main.obj : error LNK2019: unresolved external symbol @_RTC_CheckStackVars@8 referenced in function _main
    main.obj : error LNK2019: unresolved external symbol __RTC_CheckEsp referenced in function _main
    main.obj : error LNK2001: unresolved external symbol __RTC_Shutdown
    main.obj : error LNK2001: unresolved external symbol __RTC_InitBase
    main.obj : error LNK2019: unresolved external symbol _atexit referenced in function "void __cdecl `dynamic initializer for 'public: static class osg::PointInterface > const osg::PointInterface >::Null''(void)" (??__E?Null@?$PointInterface@MV?$VecStorage3@M@osg@@@osg@@2V12@B@@YAXXZ)
    main.obj : error LNK2001: unresolved external symbol __fltused
    LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup
    LINK : error LNK2001: unresolved external symbol __load_config_used
    C:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Debug\Prova2.exe : fatal error LNK1120: 12 unresolved externals
    Results Build log was saved at "file://c:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Prova2\Debug\BuildLog.htm"
    Prova2 - 13 error(s), 1 warning(s)
  • Re: Visual Studio, OSG, Qt

    Code tags? Che ne dici di inseririli?

    I tuoi problemi sono legati al linker quindi non hai incluso qualche libreria. Per di più il progetto l'ìavrai definito come GUI ma non c'è un WinMain. Quindi Non credo che hai problemi con le librerie ma di utilizzo VS.
    
    qtmain.lib QtCore4.lib QtGui4.lib Qt3Support4.lib comdlg32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
    
    Dov'è l'inclusione della libreria di OpenSG?
  • Re: Visual Studio, OSG, Qt

    Ok..

    Grazie mille per la tua risp... ora, ammetto di usare il tutto da una settimana :-/

    Quindi.. .code tag li inserirei volentieri se sapessi cosa sono e dove trovarli

    per il resto... dovrei inserire la lib osg anche nella command line?
    L'ho inserita in C/C++ ->General ; e nel Linker-> General

    Inserisco OpenSG\lib anche nella command line?

    Grazie per la risposta.. e per la pazienza!
  • Re: Visual Studio, OSG, Qt

    Sì.. andava inserita!! ^^

    Ora ho giusto:

    Build Log Build started: Project: Prova2, Configuration: Debug|Win32
    Command Lines Creating temporary file "c:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Prova2\Debug\RSP00002D28004916.rsp" with contents
    [
    /Od /I ".\GeneratedFiles\Debug" /I "C:\Program Files\OpenSG\include" /I "C:\Qt\4.4.3\include\QtOpenGL" /I "C:\Qt\4.4.3\include\Qt3Support" /I "C:\Qt\4.4.3\include\QtGui" /I "C:\Qt\4.4.3\include\QtCore" /I "C:\Qt\4.4.3\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "QT_LARGEFILE_SUPPORT" /D "QT_NO_DEBUG" /D "NDEBUG" /D "_UNICODE" /Gm /EHsc /RTC1 /MDd /Fo"Debug\\" /Fd"Debug\vc80.pdb" /W1 /c /TP ".\main.cpp"
    ]
    Creating command line "cl.exe @"c:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Prova2\Debug\RSP00002D28004916.rsp" /nologo /errorReport:prompt"
    Creating temporary file "c:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Prova2\Debug\RSP00002E28004916.rsp" with contents
    [
    /OUT:"C:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Debug\Prova2.exe" /LIBPATH:"C:\Program Files\OpenSG\lib" /LIBPATH:"C:\Qt\4.4.3\lib" /MANIFEST /MANIFESTFILE:"Debug\Prova2.exe.intermediate.manifest" /DEBUG /PDB:"c:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\debug\Prova2.pdb" /SUBSYSTEM:WINDOWS /MACHINE:X86 /NODEFAULTLIB:msvcrtd.lib C:\Program Files\OpenSG\lib qtmain.lib QtCore4.lib QtGui4.lib Qt3Support4.lib comdlg32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

    ".\Debug\main.obj"
    ]
    Creating command line "link.exe @"c:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Prova2\Debug\RSP00002E28004916.rsp" /NOLOGO /ERRORREPORT:PROMPT"
    Output Window Compiling...
    cl : Command line warning D9007 : '/Gm' requires '/Zi or /ZI'; option ignored
    main.cpp
    Linking...
    LINK : fatal error LNK1104: cannot open file 'C:\Program.obj'
    Results Build log was saved at "file://c:\Documents and Settings\ghost\My Documents\Visual Studio 2005\Projects\Prova2\Prova2\Debug\BuildLog.htm"
    Prova2 - 1 error(s), 1 warning(s)


    Quest'errore qui!

    Grazie Grazie Grazie
  • Re: Visual Studio, OSG, Qt

    Code tags è il pulsante Code nella finestra Rispondi Al Messaggio quando scrivi il tuo post.
    Cmd hai inserito il path delle librerie OpenSG male perche mancano gli doppi apici nel path.
    
    fatal error LNK1104: cannot open file 'C:\Program.obj'
    
    /NODEFAULTLIB:msvcrtd.lib "C:\Program Files\OpenSG\lib"
    Tra altro il path della libreria di OpenSG mi sembra errato.
  • Re: Visual Studio, OSG, Qt

    Ah ok!

    hai ragione sul tag.. credevo ti riferissi a qualcosa nel programma di cui ero ignara.

    Apici inseriti.. cercando su google avevo letto qualcosa sull'errore del VS, ma ad ogni modo la situazione non cambia, l'errore è sempre lo stesso, con path aggiornato :-/ :

    'C:\Program Files\OpenSG\lib.obj'
  • Re: Visual Studio, OSG, Qt

    Guarda che le librerie finiscono con .lib non con .obj. Devi vedere se OpenSG ha una libreria da importare o meno.
  • Re: Visual Studio, OSG, Qt

    Certo che le ha.. è per quello che lo uso :/

    Non capisco perché il compilatore mi vada a cercare questo .obj sinceramente... ma ho la sensazione che cerchi qualcosa che non ha senso.
    Quindi mi chiedo se gli ho lasciato intendere da qualche parte qualcosa di sbagliato.. un comando che potrebbe creare quest'inconveniente...
  • Re: Visual Studio, OSG, Qt

    'C:\Program Files\OpenSG\lib.obj'
    Questo non é il path della libreria. Dev'essere qualcosa del tipo:
    'C:\Program Files\OpenSG\qualcosa.lib
Devi accedere o registrarti per scrivere nel forum
9 risposte