我正在尝试使用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文件的方法吗?
最佳答案
您的问题不在Makefile
中。您的问题是c++
名称修改。
尝试在函数声明周围加上以下内容,以防止名称混乱。
extern "C" {
returnfun();
}
您的
Makefile
也有问题,但这是一个单独的问题。问题是您没有提供运行程序所需的所有源文件和目标文件。以下是修复它的一种可能方法。all:
g++ bits.c bits1.cpp -o bits