0

私は自分のプロジェクトで使用する教科書のボイラー プレート make ファイルを適合させる任務を負っています。Item.cpp Main.cpp と Item.h の 3 つのソース ファイルと、もちろん makefile があります。

私のメイク ファイルが正しく機能しない理由は、複数のソース ファイルがあるためだと思われます。この例では 1 つしかない (Assignment1.cpp) ため、次のようなエラー メッセージが表示されます。

Microsoft (R) Program Maintenance Utility Version 11.00.51106.1
Copyright (C) Microsoft Corporation.  All rights reserved.

NMAKE : fatal error U1073: don't know how to make 'Assignment01.obj'
Stop.

私はmakeファイルに関するいくつかの情報を調べましたが、ほとんどのC++はg++に関連しており、makeファイルを実際に使用する人はもういないようで、IDEに任せています。

# Assignment01 makefile

!include <"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\win32.mak">
# !include <win32.mak> for Visual Studio 2010 or earlier
# Visual Studio 2012 may install this file inside C:\Program Files folder

all: Assignment01.exe

.cpp.obj:
  $(cc) $(cdebug) $(cflags) $(cvars) $*.cpp

Assignment01.exe: Assignment01.obj
  $(link) $(ldebug) $(conflags) -out:Assignment01.exe Assignment01.obj $(conlibs) 
4

1 に答える 1

0

ここで直面している問題は、ソース ファイル "Assignment01.cpp" がなく、対応する .obj ファイルがメイクファイルにリストされていることです。2 つのソース ファイルがあるようです。したがって、対応する 2 つのオブジェクト ファイル (Item.obj Main.obj) をリンク ステートメントにリストするだけです。

例は次のとおりです。

Assignment01.exe: Item.obj Main.obj
  $(link) $(ldebug) $(conflags) -out:Assignment01.exe Item.obj Main.obj $(conlibs) 

ご使用の環境でこれを確認する必要があります。これだけ入力しました。

幸運を。

于 2013-06-03T04:35:16.970 に答える