我遇到了一些与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
来解决问题,但这仍然很有趣。