Solo me pregunto si hay un equivalente de 'makedepends' que se envíe con Visual Studio que pueda usar con nmake. ¿Alguien sabe?makedepend equivalente para usar con nmake?
Respuesta
Puede usar el /showIncludes
switch to cl.exe
para enumerar los encabezados #include
d por sus archivos fuente. Las inserciones anidadas se indican con sangría con espacios. También puede activar el modo de comprobación de la sintaxis con el interruptor /Zs
, para aumentar la velocidad y evitar la creación de archivos .obj.
Si tiene Perl y una versión de uniq
(por ejemplo, de GnuWin32) instalado, el siguiente de una sola línea volcará la lista de cabeceras únicas utilizado por myfile.cpp
:
cl /Zs /showIncludes /EHsc myfile.cpp | perl -ne "print if s/^Note: including file: *//" | sort | uniq
no debería ser demasiado difícil de canalice esto a través de otra secuencia de comandos que crea las reglas relevantes nmake
.
Supongo que utiliza NMAKE para crear proyectos como yo. También necesito una herramienta parecida a makedepend en Windows. Por lo tanto, uso MinGW para generar dependencias de encabezado. En primer lugar crear Makefile para generar dependencias, que he denominado makedepends, así:
OBJS=... list object files in your project...
all: Makefile.deps
Makefile.deps: $(OBJS:.obj=.dep)
cat $+ > [email protected]
rm -f $+
%.dep: %.cpp
g++ -MM -MG -MT$(@:.dep=.obj) [email protected] $<
En su Makefile que será utilizado por NMAKE, añadir esta línea en la parte inferior:
!INCLUDE Makefile.deps
Cuando desee crear dependencias, ejecute GAsegúrese así:
make -fMakedepends
Y entonces, usted puede construir su proyecto con NMAKE como de costumbre:
nmake
PD: Perdón por el lenguaje pobre, estoy apenado por escrito. -_-
.SUFFIXES:
.SUFFIXES: .c
all: x.obj
# Sample batch-mode rule which both compiles and produces .dep files suitable for NMAKE.
# Also works around the fact that CL.EXE spits diagnostics in stdout instead of stderr.
# This is equivalent to -MD -MP [email protected] -MF$(@R).dep in GNU Make + GCC.
CCOMMAND = $(CC) $(CFLAGS) /c $<
.c.obj::
!IF "$(MAKEFLAGS:S=)" == "$(MAKEFLAGS)"
@echo " $(CCOMMAND)"
!ENDIF
@$(COMSPEC) /E:ON /V:ON /C "$(CCOMMAND) /showIncludes & echo Exit: !ERRORLEVEL!" | \
$(COMSPEC) /E:ON /V:ON /C "for /f "tokens=1,* delims=]" %%A in ('find /v /n ""') do \
@if %%~xB == .c (set _=%%~nB&rem.>!_!.dep&echo %%B) else for /f "tokens=1,2,3,*" %%C in ("%%B") do \
@if %%C == Note: ((echo !_!.obj: "%%F"&echo "%%F":) >> !_!.dep) \
else if %%C == Exit: (exit /b %%D) else echo %%B"
# Include the generated deps.
!IF ![(for %i in (*.dep) do @echo !INCLUDE %i) >Build.tmp]
! INCLUDE Build.tmp
! IF ![del Build.tmp]
! ENDIF
!ENDIF
- 1. MS nmake equivalente a $ (MAKECMDGOALS)
- 2. ¿Cómo utilizo todos los núcleos para nmake?
- 3. Cómo usar nmake para un proyecto de C++
- 4. NMake Pattern Rules
- 5. ¿Qué es NMAKE?
- 6. cómo obtener el resultado de un comando al usar Microsoft nmake?
- 7. nmake - carácter ilegal '{' en macro
- 8. Usando nmake con comodines en el archivo MAKE
- 9. ¿declaración "con" equivalente para Scala?
- 10. nmake añadiendo a las variables de utilidad
- 11. ¿Cuál es el equivalente de Objective-C para "toString()", para usar con NSLog?
- 12. Yacc equivalente para Java
- 13. Utilice el mismo archivo make para make (Linux) y nmake (Windows)
- 14. equivalente Método para @InjectMocks
- 15. Equivalente para inyectar() en Python?
- 16. Mylyn equivalente para Netbeans?
- 17. ltrace equivalente para osx?
- 18. getElementsByTagName() equivalente para textNodes
- 19. timespec equivalente para windows
- 20. NMAKE: U1077 error grave: código de retorno '0xc0000135'
- 21. Equivalente de Firebug para Thunderbird
- 22. NSTask o equivalente para iPhone
- 23. GetWebResourceUrl equivalente para ASP.NET MVC?
- 24. DoEvents equivalente para C++?
- 25. Passport.js equivalente para Python?
- 26. .NET equivalente para GetLastInputInfo?
- 27. GWT equivalente para .NET?
- 28. Función equivalente para file_get_contents()?
- 29. Equivalente para cuerdas pop
- 30. Dreamweaver equivalente para Linux