我正在尝试使用Make。
编译c和c ++文件我对make不是很熟悉,而且我已经设法编写了一个简单的make文件
all:
g++ bits.c -o bits.out
g++ bits1.cpp -o bits1.out
clean:
rm bits.out
rm bits1.out
g ++也可以编译'c'文件,所以我为我在这里使用的所有文件写了g ++。
我试图从“.c”文件中调用“.cpp”文件中的一个函数。 这给了我一个错误作为“未定义的函数引用”
为了解释它,我在“bits1.cpp”文件中有名称“returnfun()”的函数,其声明在“bits1.h”文件中,并且我在“bits.c”中包含了“bits1.h”文件。 “并且从bits.c调用相同的函数,这给我一个错误。
还有其他编写makefile的方法吗?
答案 0 :(得分:3)
您的问题不在Makefile
中。您的问题是c++
名称错误。
尝试使用以下内容包围函数声明,以防止名称损坏。
extern "C" {
returnfun();
}
您的Makefile
也有问题,但这是一个单独的问题。问题是您没有提供运行该程序所需的所有源文件和目标文件。以下是一种可能的解决方法。
all:
g++ bits.c bits1.cpp -o bits