2016-07-24 5 views
1

私はこのメイクファイルを持っているg ++ makeの使い方は?

CC = g++ 
CFLAGS = -std=c++14 -Wall -Wpedantic -g 
PROG = a 
OBJS = other.o main.o 
SRCS = other.cpp main.cpp 

a: $(OBJS) 
    $(CC) $(CFLAGS) -o $(PROG) $(OBJS) 

.cpp.o: 
    $(CC) $(CFLAGS) -c $*.cpp 

clean: 
    $(RM) -f $(OBJS) $(PROG) 

depend: 
    makedepend -- $(CFLAGS) -- $(SRCS) 

マイother.cppがある

int f() noexcept // example function 
{ 
    return 2; 
} 

私のmain.cppには、私はmake dependを実行すると、それだけで追加し、明らかに、そう

int main(int, char**) 
{ 
    f(); 
    return 0; 
} 

です#DO NOT DELETEと書かれています。しかし、コンパイル時に、私がちょうどmakeを実行すると、私はmain.cppのためにこのエラーを受け取ります:‘f’ was not declared in this scope。私はここに大きなものがないと思う。なぜこれがコンパイルされないのか、私は何をすべきなのか誰にも説明できますか?

+1

私は個人的にヘッダーファイルを採用することをお勧めします。あなたは後でそれを必要とするでしょう。 –

+1

CCはC++コンパイラであってはなりません。それにはCXXを使用してください。 –

+0

そして 'CFLAGS'ではなく' CXXFLAGS'です。 – juanchopanza

答えて

2

これはあなたのMakefileとは関係ありません。

コンパイラのエラーメッセージは自明です。関数はC++で使用する前に宣言しなければなりません。あなたのmain.cpp

int f() noexcept; 

は、適切な宣言を追加します。

+0

えええええええええええ、これをしないでください。 –

関連する問題