私はnmakeで使うことができるビジュアルスタジオに同梱されている 'makedepends'に相当するものがあるかどうか疑問です。誰か知っていますか?nmakeで使用するmakedependと同等ですか?
9
A
答えて
7
/showIncludes
switch to cl.exe
を使用して、#include
ヘッダーをソースファイルで一覧表示することができます。ネストされたインクルードは、スペースでインデントされて示されます。 /Zs
スイッチで構文チェックモードを有効にして、速度を上げ、.objファイルの作成を回避することもできます。
あなたはPerlとuniq
のバージョン(例えばGnuWin32から)がインストールされている場合は、以下のワンライナーがmyfile.cpp
が使用する一意のヘッダのリストをダンプします:
cl /Zs /showIncludes /EHsc myfile.cpp | perl -ne "print if s/^Note: including file: *//" | sort | uniq
それがあまりにも難しいことではありませんこれを適切なnmake
のルールを作成する別のスクリプトにパイプします。
3
あなたは私のようなプロジェクトを構築するためにNMAKEを使うと仮定します。私はWindowsでも泥沼のようなツールが必要です。ですから、私はMinGWを使ってヘッダの依存関係を生成します。
NMAKEで使用されます、あなたのMakefileで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] $<
、一番下に次の行を追加します:
!INCLUDE Makefile.deps
あなたがしたいときに最初に私はそれがこのように、Makedepends命名され、依存関係を生成するMakefileを作成します依存関係を作成し、このようにgmakeを実行します。
make -fMakedepends
そして、あなたはいつものようにNMAKEでプロジェクトをビルドすることができます
nmake
PS:すみません、申し訳ありませんが、私は書いています。 -_-
1
.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. NMAKEとは何ですか?
- 2. __proto__を使用するのと同等ですか?
- 3. x:Bindを使用する場合は、UpdateSourceTrigger = PropertyChangedと同等です。
- 4. Pythonのパンダで使用する配列と同等のExcel
- 5. Androidで_vscprintfと同等ですか?
- 6. PHPでc#outputcacheと同等ですか?
- 7. MVC3でUserControlと同等ですか?
- 8. ubuntuでGetTimeZoneInformationと同等ですか?
- 9. Pythonと同等で同等の関数
- 10. イベントリスナー - Firefoxと同等ですか?
- 11. SubversionはTFSシェルビングと同等ですか?
- 12. Azure AppFabricはAWSと同等ですか?
- 13. iOS NSNotificationはEventsと同等ですか?
- 14. `ast.literal_eval`はカスタムクラスオブジェクトと同等ですか?
- 15. Liquidのis_array()と同等ですか?
- 16. DjangoのMessageSourceと同等ですか?
- 17. C++のcheckstyleと同等ですか?
- 18. osxの/etc/init.dと同等ですか?
- 19. DateTimeOffset.UtcNow.DateTimeはDateTime.UtcNowと同等ですか?
- 20. アンドロイドMGBox2ライブラリと同等ですか?
- 21. PasspropsはNavigatorと同等ですか?
- 22. なぜ(?!^)は(?<!^)と同等ですか?
- 23. perl -peと同等のPythonですか?
- 24. .NETデータバインディングと同等のQtですか?
- 25. breed-hereはエージェントセットと同等ですか?
- 26. IEは-webkit-appearanceと同等ですか?
- 27. Firefoxのconsole.memoryと同等ですか?
- 28. WinFormのSizeToContentと同等ですか?
- 29. gBrowserと同等のChromeですか?
- 30. IzPackはNSIS ReadCustomerDataと同等ですか?