2016-12-17 3 views
-2

CとCの両方のファイルをC++でコンパイルして、結果のバイナリファイルに作成しようとしています。私はそれがsimulated.o 『「ターゲットを作成する方法がわからない』文句「すべてが作る」ないとき.cファイルと.cppファイルのMakefileが機能しません。

CFLAGS = -Wall -fpermissive -DENV_EMBEDDED -I../utils/ -../usblib/include 
CPPFLAGS = $(CFLAGS) 
CXXFLAGS = $(CFLAGS) 

LDFLAGS = -lmisc -lrt 

PNAME=Simulator 

OBJ = simulated.o \ 
    buffer.o \ 
    common.o 

all: $(OBJ) 
    $(LDFLAGS) -o $(PNAME) $(OBJ) 

CFLAGSとCPPFLAGS /:私のMakefileは、この(簡体字)のように見えます。 CXXFLAGSは.C/.cppファイルに自動的に依存して使用する必要があります - 権利それでは、このMakefileで間違っている可能性が

おかげ

+1

1)これは異なる言語CやC++ではなく、makefileです。タグをスパムしないでください。 2)CはC++ではないCではない!コンパイラのCコードをC++としてコンパイルしないでください。同一の構文/文法は、同一の意味を意味するものではない。 C++プロジェクトでCモジュールを使用する場合は、C++に適切なヘッダーを指定し、CコードをCとしてコンパイルします。XY問題について質問しています。 – Olaf

+0

makeのマニュアルを読んだことがありますか? – Stargateur

+0

正確なエラーメッセージですか?そのメッセージのGNU Make版は「ターゲットを作成する方法を知らない」ため、使用しているMake版を知ることは有益です。 'simulated.cpp'ファイルがありますか?コマンド 'make -p -f/dev/null'(またはそれに準ずる)はルールの 'データベース'を出力します。照明の可能性のある場所で.cppルールを探します。 –

答えて

1

最後に、私はそれはとは何の関係もありませんでした、私の問題の原因を発見しました?!その面白いC/CPPの混合物。これの代わりに、simulated.cファイルは単純にそうではありません:-DIは知っています、CとC++を混在させるのはちょっと変わっていますが、この場合、Cファイルはマイクロコントローラのファームウェアから、CPPファイルはwxWidgetsのUIコンポーネントです。通常のPC上で実行されているファームウェアのいずれのコンポーネントもCまたはC++に移行することはできません。すべてのコンポーネントをそのまま維持する必要があります。

関連する問題