C++ プログラムをコンパイルしようとすると、このエラーが発生します。
undefined reference to 'some_function'
一方、メイクファイルに含まれるファイルを追加しますsome_function。some_functionまた、使用するファイルに宣言を含めます。では、なぜコンパイラはそれを見つけることができないと文句を言うのでしょうか? 考えられる理由は何ですか?
私のメイクファイルはそのようなものです
CXX = g++
CXXFILES = dlmalloc.c pthreads.cpp queue.cpp
CXXFLAGS = -O3 -o prog -rdynamic -D_GNU_SOURCE
LIBS = -lpthread -ldl
all:
$(CXX) $(CXXFILES) $(LIBS) $(CXXFLAGS)
clean:
rm -f prog *.o
some_functionで定義されdlmalloc.c、内部で使用されpthreads.cppます。dlmalloc.cそれは C ソース コード ファイルであり、その他は C++ ファイルであるという事実と関係がありますか。たぶん、ここでextern "C"キーワードを使用する必要がありsome_functionますよね?