为什么gcc不给我警告或错误

Why does not gcc give me warning or error?

本文关键字:警告 错误 gcc 为什么      更新时间:2023-10-16

我创建了共享库:

lib.h:

int fun( int a, int b);

lib.cpp:

#include <lib.h>
int fun ( int a, int b)
{
    return a+b;
}

编译:

gcc -fPIC -c lib.cpp gcc -shared -o -I ./header lib.so lib.o

我的图书馆位于/头球因此,汇编是成功的。之后我更改lib.cpp:

#include <lib.h>
int fun ( int a)
{
    return a;
}

但什么也没发生。我想看看错误信息或者警告。为什么?

在C++中,定义第二个名称相同但参数不同的函数是合法的。在C语言中,编译库时会出现错误,但在C++中则不然。

现在,在任何一种语言中,使用库的任何人都会得到一个未定义的符号错误。标题中列出的函数没有在任何地方定义。