main.cpp忽略* .c(不是cpp) - 未定义的引用

时间:2016-09-27 17:08:07

标签: c++ c gcc

我遇到了一些与gcc和未定义引用错误的奇怪错误。 我创建了一个简单的测试项目,我用gcc编译:

的main.cpp

#include "func.h"

int main(int argc, char *argv[])
{
    func();
}

func.h

void func();

func.c

void func()
{
}

项目本身使用QtCreator构建,因此所有Makefiles等都是自动构建的。构建命令是:

  

g ++ -o debug \ main.o main.cpp

     

gcc -o debug \ func.o func.c

     

g ++ -o debug \ app.exe debug / main.o debug / func.o

之后我收到错误:

  

main.cpp:9:未定义对`func()'

的引用

好的,经过多次尝试,我注意到*.c文件已使用gcc编译,*.cpp编译为g++。但这是什么意思? *.obj文件格式是否不同?通过将扩展名从*.c更改为*.cpp来解决问题,但这仍然很有趣。

0 个答案:

没有答案