我正在尝试使用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

07-26 02:28