混合C和C ++ makefile

时间:2014-07-23 05:47:13

标签: c++ c makefile

我正在尝试使用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的方法吗?

1 个答案:

答案 0 :(得分:3)

您的问题不在Makefile中。您的问题是c++名称错误。

尝试使用以下内容包围函数声明,以防止名称损坏。

extern "C" {
    returnfun();
}

您的Makefile也有问题,但这是一个单独的问题。问题是您没有提供运行该程序所需的所有源文件和目标文件。以下是一种可能的解决方法。

all:
        g++ bits.c  bits1.cpp -o bits