我正在为当前项目编写一个函数。

现在,我有一个Countrys.h标头。

当我尝试编译时,这是我得到的错误:

CMakeFiles/untitled2.dir/Countries.c.o: In function `addCountry':
/home/ise/CLionProjects/untitled2/Countries.c:36: multiple definition of `addCountry'


这是代码的一部分:

Countris.h:

typedef struct Country Country;
typedef struct City City;
typedef struct Cordinate Cordinate;
//add country
Country* addCountry(char *name1, Cordinate cr1, Cordinate cr2);


Countris.c:

#include "Countries.h"
#include <stdio.h>
Country* addCountry(char *name1 , Cordinate cr1 , Cordinate cr2) {
    Country *country1 = (Country*)malloc(sizeof(Country));

.. rest of the code

    return country1;
}

最佳答案

您很可能两次为Countries.c编译了源代码。我认为您在代码Countries.c中包含了某处,所以这就是错误的原因。

关于c - C函数的多重定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53337234/

10-11 23:20