Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1879 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Comment créer des fichier de dependence avec microsoft compiler

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment créer des fichier de dependence avec microsoft compiler

n°2028644
eraser17
Posté le 12-10-2010 à 16:12:33  profilanswer
 

Hello,
 
J'essaye de traduire notre systeme de build en adoptant un principe de makefile non recursif.  
 
Vu qu'on doit etre multiplateforme on utilise le compilateur microsoft sur windows et gcc sur linux.  
 
Sur gcc on peut utiliser le flag -MD pour créer un fichier .d automatiquement.  
 
Je trouve pas d’équivalent avec le compilateur windows. Ca existe ou faut le faire à la main?

mood
Publicité
Posté le 12-10-2010 à 16:12:33  profilanswer
 

n°2028881
theshockwa​ve
I work at a firm named Koslow
Posté le 13-10-2010 à 11:40:21  profilanswer
 

si tu veux te simplifier tes makefiles, tu peux éventuellement utiliser du gcc sous windows, en utilisant par exemple l'environnement MSYS.
 
Je ne connais pas ces fichiers .d, mais j'imagine que tu as déjà jeté un oeil aux flags de cl.exe et de link.exe
 


                         C/C++ COMPILER OPTIONS
 
 
                              -OPTIMIZATION-
 
/O1 minimize space                      /O2 maximize speed
/Ob<n> inline expansion (default n=0)   /Od disable optimizations (default)
/Og enable global optimization          /Oi[-] enable intrinsic functions
/Os favor code space                    /Ot favor code speed
/Ox maximum optimizations               /Oy[-] enable frame pointer omission
 
                             -CODE GENERATION-
 
/GF enable read-only string pooling     /Gm[-] enable minimal rebuild
/Gy[-] separate functions for linker    /GS[-] enable security checks
/GR[-] enable C++ RTTI                  /GX[-] enable C++ EH (same as /EHsc)
/EHs enable C++ EH (no SEH exceptions)  /EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow
/fp:<except[-]|fast|precise|strict> choose floating-point model:
    except[-] - consider floating-point exceptions when generating code
    fast - "fast" floating-point model; results are less predictable
    precise - "precise" floating-point model; results are predictable
    strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/GL[-] enable link-time code generation /GA optimize for Windows Application
/Ge force stack checking for all funcs  /Gs[num] control stack checking calls
/Gh enable _penter function call        /GH enable _pexit function call
/GT generate fiber-safe TLS accesses    /RTC1 Enable fast checks (/RTCsu)
/RTCc Convert to smaller type checks    /RTCs Stack Frame runtime checking
/RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
    pure - produce IL-only output file (no native executable code)
    safe - produce IL-only verifiable output file
    oldSyntax - accept the Managed Extensions syntax from Visual C++ 2002/2003
    initialAppDomain - enable initial AppDomain behavior of Visual C++ 2002
    noAssembly - do not produce an assembly
/Gd __cdecl calling convention          /Gr __fastcall calling convention
/Gz __stdcall calling convention        /GZ Enable stack checks (/RTCs)
/QIfist[-] use FIST instead of ftol()
/hotpatch ensure function padding for hotpatchable images
/arch:<SSE|SSE2> minimum CPU architecture requirements, one of:
    SSE - enable use of instructions available with SSE enabled CPUs
    SSE2 - enable use of instructions available with SSE2 enabled CPUs
/Qimprecise_fwaits generate FWAITs only on "try" boundaries, not inside "try"
 
                              -OUTPUT FILES-
 
/Fa[file] name assembly listing file    /FA[scu] configure assembly listing
/Fd[file] name .PDB file                /Fe<file> name executable file
/Fm[file] name map file                 /Fo<file> name object file
/Fp<file> name precompiled header file  /Fr[file] name source browser file
/FR[file] name extended .SBR file
/doc[file] process XML documentation comments and optionally name the .xdc file
 
                              -PREPROCESSOR-
 
/AI<dir> add to assembly search path    /FU<file> forced using assembly/module
/C don't strip comments                 /D<name>{=|#}<text> define macro
/E preprocess to stdout                 /EP preprocess to stdout, no #line
/P preprocess to file                   /Fx merge injected code to file
/FI<file> name forced include file      /U<name> remove predefined macro
/u remove all predefined macros         /I<dir> add to include search path
/X ignore "standard places"
 
                                -LANGUAGE-
 
/Zi enable debugging information        /Z7 enable old-style debug info
/Zp[n] pack structs on n-byte boundary  /Za disable extensions
/Ze enable extensions (default)         /Zl omit default library name in .OBJ
/Zg generate function prototypes        /Zs syntax check only
/vd{0|1|2} disable/enable vtordisp      /vm<x> type of pointers to members
/Zc:arg1[,arg2] C++ language conformance, where arguments can be:
    forScope[-] - enforce Standard C++ for scoping rules
    wchar_t[-] - wchar_t is the native type, not a typedef
/ZI enable Edit and Continue debug info
/openmp enable OpenMP 2.0 language extensions
 
                              -MISCELLANEOUS-
 
@<file> options response file           /?, /help print this help message
/bigobj generate extended object format /c compile only, no link
/errorReport:option Report internal compiler errors to Microsoft
    none - do not send report
    prompt - prompt to immediately send report
    queue - at next admin logon, prompt to send report (default)
    send - send report automatically
/FC use full pathnames in diagnostics   /H<num> max external name length
(press <return> to continue)
/J default char type is unsigned
/MP[n] use up to 'n' processes for compilation
/nologo suppress copyright message      /showIncludes show include file names
/Tc<source file> compile file as .c     /Tp<source file> compile file as .cpp
/TC compile all files as .c             /TP compile all files as .cpp
/V<string> set version string           /w disable all warnings
/wd<n> disable warning n                /we<n> treat warning n as an error
/wo<n> issue warning n once             /w<l><n> set warning level 1-4 for n
/W<n> set warning level (default n=1)   /Wall enable all warnings
/WL enable one line diagnostics         /WX treat warnings as errors
/Yc[file] create .PCH file              /Yd put debug info in every .OBJ
/Yl[sym] inject .PCH ref for debug lib  /Yu[file] use .PCH file
/Y- disable all PCH options             /Zm<n> max memory alloc (% of default)
/Wp64 enable 64 bit porting warnings
 
                                -LINKING-
 
/LD Create .DLL                         /LDd Create .DLL debug library
/LN Create a .netmodule                 /F<num> set stack size
/link [linker options and libraries]    /MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB                /MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib


---------------
last.fm
n°2028901
eraser17
Posté le 13-10-2010 à 12:36:50  profilanswer
 

J'utilise deja cygwin pour pouvoir faire des scripts compatible en windows et linux mais je veux utiliser le compilateurs windows pour plusieurs raisons, d'une part il optimise mieux que gcc et d'autre part il produit des pdb qui permettent de débugger avec visual studio, ce qui est non négligeable quand on compare ça avec les debuger pour gcc.  
 
Ma solution est de faire une première passe gcc pour créer les dépendances et d'ensuite compiler avec cl mais je voudrais faire tout ça en une passe avec cl.  
 
Et c'est là que je bloque, visiblement il y a rien de prévu dans les flags compilateur pour gérer les fichier de dépendance.

n°2028910
Un Program​meur
Posté le 13-10-2010 à 13:28:22  profilanswer
 

Dans l'aide ci-dessus je vois /showIncludes qui m'a l'air de fournir ce que tu veux, quitte a le passer dans une script pour le mettre en forme si necessaire.  


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°2028931
eraser17
Posté le 13-10-2010 à 14:19:58  profilanswer
 

ah ouai effectivement, en passant le output de ce truc dans un sed qui vire les bouts en trop ça peut le faire. Je vais essayer de voir ce que je peux faire avec ça.  
 
Merci de m'avoir fait remarquer ce flag.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Comment créer des fichier de dependence avec microsoft compiler

 

Sujets relatifs
Selectionner un fichier tous les N fichiersextraction de contenus d'un fichier texte
transfert de fichier grâce a OBEX?Recuperer un resultat dans un fichier txt ..
creer un raccourci a une longue commande dossvn merge n'ajoute pas les fichiers créer entre l'intervalle
Créer un forumstocker 1 fichier sur un site accessible par une url
Plus de sujets relatifs à : Comment créer des fichier de dependence avec microsoft compiler


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR