我正在尝试编译一个 C++ 程序,它给了我这个错误。
undefined reference to 'some_function'
而我确实添加了包含some_function
在makefile中的文件。some_function
我还在使用它的文件中包含声明。那么为什么编译器仍然抱怨找不到呢?可能的原因是什么?
我的makefile是这样的
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
,对吧?