wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :668

Membres en ligne : 0
Invités en ligne : 8
Pub hébergeur
Pourquoi cette pub ?

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Compilation - Installation - Réglages IDE
» VC90 link wxDev DLL monolithique unicode
Conversation : VC90 link wxDev DLL monolithique unicode
10-03-2010 14:39:03  VC90 link wxDev DLL monolithique unicode #1
Gandi (Gourou de la secte)
Lieu: Clermont Ferrand
Inscrit le : 10-10-2007
Messages: 205
Snippets: 4
Tutoriels: 0
Hors ligne
Marche pas. WOUINNNNN. ( Mais ça marche au poil avec les libs pour mingw )

...


:p

Sinon plus sérieusement, j'ai généré les wx2810 à partir de l'installateur wxWidgets de wxDev. J'essaie de compiler avec VC90 sous Visual et CB. Pour CB j'ai utilisé le wizard du template de wxWidget. Impossible de lui faire trouver les DLL wxmsw28u_vc_wxDev.fr.dll et wxmsw28ud_vc_wxDev.fr.dll. Que je les enlève/renomme/déplace (dans le répertoir des lib, à coté de l'exe, à coté du project ) / que je veille au Working Dir / que j'ajoute le chemin de recherche "$(LIB)/wx2810/bin" pour les liens. Rien n'y fait il veux pas trouver les DLL. Je sèche là.

VC90 Error List a écrit:
App.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual bool __thiscall wxApp::Initialize(int &,wchar_t * *)" (__imp_?Initialize@wxApp@@UAE_NAAHPAPA_W@Z)
App.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) class wxString __cdecl operator+(wchar_t const *,class wxString const &)" (__imp_??H@YA?AVwxString@@PB_WABV0@@Z)
App.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall wxString::wxString(wchar_t const *)" (__imp_??0wxString@@QAE@PB_W@Z)
Frame.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall wxClassInfo::wxClassInfo(wchar_t const *,class wxClassInfo const *,class wxClassInfo const *,int,class wxObject * (__cdecl*)(void))" (__imp_??0wxClassInfo@@QAE@PB_WPBV0@1HP6APAVwxObject@@XZ@Z)
#define / Preprocessor Definitions a écrit:
WIN32
__WIN32__
__WXMSW__
WXUSINGDLL
wxUSE_UNICODE
_WINDOWS
_CRT_SECURE_DEPRECATE
_CRT_NONSTDC_NO_DEPRECATE
_VC80_UPGRADE=0x0600
WX_PRECOMP
Link libraries / Additional dependencies a écrit:
En Release :
wxmsw28u.lib
En Debug : // #define __WXDEBUG__ : OK
wxmsw28ud.lib
----------
Grrr je vois toujours pas le problème. Surement un truc idiot que j'ai oublié tsss.
Voici le projet Codeblocks avec le compilateur VC90. ( le projet à été généré par Codeblocks ).

Code:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
    <FileVersion major="1" minor="6" />
    <Project>
        <Option title="test5" />
        <Option pch_mode="2" />
        <Option compiler="msvc8" />
        <Build>
            <Target title="Debug_VC90">
                <Option output="..\test5" prefix_auto="1" extension_auto="1" />
                <Option working_dir=".\..\" />
                <Option object_output="obj\Debug\" />
                <Option type="0" />
                <Option compiler="msvc8" />
                <Option projectLinkerOptionsRelation="2" />
                <Compiler>
                    <Add option="/MDd" />
                    <Add option="/Zi" />
                    <Add option='/Fp&quot;obj\Debug\test5.pch&quot;' />
                    <Add option="/D_DEBUG" />
                    <Add option="/D__WXDEBUG__" />
                    <Add directory="F:\wx2810\lib\vc_dll\mswud" />
                </Compiler>
                <ResourceCompiler>
                    <Add directory="F:\wx2810\lib\vc_dll\mswud" />
                </ResourceCompiler>
                <Linker>
                    <Add option="/DEBUG" />
                    <Add option="/NODEFAULTLIB:libcmtd.lib" />
                    <Add option="/NODEFAULTLIB:msvcrt.lib" />
                    <Add library="msvcrtd.lib" />
                    <Add library="wxmsw28ud.lib" />
                    <Add directory="F:\wx2810\lib\vc_dll" />
                    <Add directory="F:\wx2810\bin" />
                </Linker>
                <ExtraCommands>
                    <Add after='mt.exe /nologo /manifest &quot;..\test5.exe.manifest&quot; /outputresource:&quot;..\test5.exe&quot;;1' />
                </ExtraCommands>
            </Target>
            <Target title="Release_VC90">
                <Option output="..\test5" prefix_auto="1" extension_auto="1" />
                <Option working_dir=".\..\" />
                <Option object_output="obj\Release\" />
                <Option type="0" />
                <Option compiler="msvc8" />
                <Option projectLinkerOptionsRelation="2" />
                <Compiler>
                    <Add option="/MD" />
                    <Add option="/O2" />
                    <Add option="/Ox" />
                    <Add option="/Zc:wchar_t" />
                    <Add option='/Fp&quot;obj\Release\test5.pch&quot;' />
                    <Add option="/Ob1" />
                    <Add option="/DNDEBUG" />
                    <Add directory="F:\wx2810\lib\vc_dll\mswu" />
                </Compiler>
                <ResourceCompiler>
                    <Add directory="F:\wx2810\lib\vc_dll\mswu" />
                </ResourceCompiler>
                <Linker>
                    <Add option="/NODEFAULTLIB:libcmt.lib" />
                    <Add library="msvcrt.lib" />
                    <Add library="wxmsw28u.lib" />
                    <Add directory="F:\wx2810\lib\vc_dll" />
                    <Add directory="F:\wx2810\bin" />
                </Linker>
                <ExtraCommands>
                    <Add after='mt.exe /nologo /manifest &quot;..\test5.exe.manifest&quot; /outputresource:&quot;..\test5.exe&quot;;1' />
                </ExtraCommands>
            </Target>
        </Build>
        <VirtualTargets>
            <Add alias="All" targets="Debug_VC90;Release_VC90;" />
        </VirtualTargets>
        <Compiler>
            <Add option="/TP" />
            <Add option="/Gd" />
            <Add option="/GF" />
            <Add option="/W3" />
            <Add option="/EHsc" />
            <Add option='/FI&quot;wx_pch.h&quot;' />
            <Add option='/Yc&quot;wx_pch.h&quot;' />
            <Add option="/DWIN32" />
            <Add option="/D__WIN32__" />
            <Add option="/D__WXMSW__" />
            <Add option="/DWXUSINGDLL" />
            <Add option="/DwxUSE_UNICODE" />
            <Add option="/D_WINDOWS" />
            <Add option="/D_CRT_SECURE_DEPRECATE" />
            <Add option="/D_CRT_NONSTDC_NO_DEPRECATE" />
            <Add option="/D_VC80_UPGRADE=0x0600" />
            <Add option="/DWX_PRECOMP" />
            <Add directory="F:\wx2810\include" />
            <Add directory="F:\wx2810\contrib\include" />
        </Compiler>
        <ResourceCompiler>
            <Add directory="F:\wx2810\include" />
        </ResourceCompiler>
        <Linker>
            <Add option="/INCREMENTAL:NO" />
            <Add option="/SUBSYSTEM:WINDOWS" />
            <Add library="winmm.lib" />
            <Add library="rpcrt4.lib" />
        </Linker>
        <Unit filename="resource.rc">
            <Option compilerVar="WINDRES" />
        </Unit>
        <Unit filename="test5App.cpp" />
        <Unit filename="test5App.h" />
        <Unit filename="test5Main.cpp" />
        <Unit filename="test5Main.h" />
        <Unit filename="wx_pch.h" />
        <Extensions>
            <code_completion />
            <envvars />
            <debugger />
        </Extensions>
    </Project>
</CodeBlocks_project_file>
 

----------
Quelques petit liens : ( Je suis asse curieux de voir comment il fait pour faire le lien entre une lib et une DLL portant chacune un nom différents. )
http://msdn.microsoft.com/fr-fr/library/ms235342.aspx
http://msdn.microsoft.com/fr-fr/library/ms235542.aspx

"Les en-têtes de bibliothèques Visual C++ contiennent des informations sur les assemblys et, lorsque les bibliothèques sont incluses dans le code d'application, ces informations sont utilisées par l'éditeur de liens pour former un manifeste pour le fichier binaire final"
----------
Tien j'ai fait un test et j'ai le même problème avec les multi-librairies statiques unicodes.
----------
http://www.wxdev.fr/topic439-Erreur_lin … ring_.html

Résolu pour Visual 2008 avec VC90
cela faut mettre l'option /Zc:wxchar_t

Non résolu pour C::B avec VC90, l'option /Zc:wxchar_t ne change rien

Dernière modification par Gandi (11-03-2010 15:18:59)


Je voix des pixels.... des pixels partout ... sur les murs,... et même sur le sol et le plafond.
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Compilation - Installation - Réglages IDE
» VC90 link wxDev DLL monolithique unicode