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
ますよね?