生成C程序时出错

生成C程序时出错,c,xcode,C,Xcode,以下是我的2个源文件: main.c: #include <stdio.h> #include "part2.c" extern int var1; extern int array1[]; int main() { var1 = 4; array1[0] = 2; array1[1] = 4; array1[2] = 5; array1[3] = 7; display(); printf("--------------

以下是我的2个源文件:

main.c:

#include <stdio.h>
#include "part2.c"

extern int var1;
extern int array1[];

int main()
{
    var1 = 4;
    array1[0] = 2;
    array1[1] = 4;
    array1[2] = 5;
    array1[3] = 7;

    display();

    printf("---------------");

    printf("Var1: %d", var1);
    printf("array elements:");

    int x;
    for(x = 0;x < 4;++x)
        printf("%d: %d", x, array1[x]);

    return 0;
}
#包括
#包括“第2.c部分”
外部内部变量1;
外部内部阵列1[];
int main()
{
var1=4;
阵列1[0]=2;
阵列1[1]=4;
阵列1[2]=5;
阵列1[3]=7;
显示();
printf(“--------------”);
printf(“Var1:%d”,Var1);
printf(“数组元素:”);
int x;
对于(x=0;x<4;++x)
printf(“%d:%d”,x,数组1[x]);
返回0;
}
第2.c部分

#include <stdio.h>

int var1;
int array1[4];

void display(void);

void display(void)
{
    printf("Var1: %d", var1);
    printf("array elements:");

    int x;
    for(x = 0;x < 4;++x)
        printf("%d: %d", x, array1[x]);
}
#包括
int-var1;
国际阵列1[4];
作废显示(作废);
作废显示(作废)
{
printf(“Var1:%d”,Var1);
printf(“数组元素:”);
int x;
对于(x=0;x<4;++x)
printf(“%d:%d”,x,数组1[x]);
}
当我试图编译程序时,我得到的是:

Ld/Users/John/Library/Developer/Xcode/DerivedData/Test blxrdmnozbbrbwhcekmouessaprf/Build/Products/Debug/Test normal x86_64 cd/Users/John/Xcode/Test setenv MACOSX_部署_目标10.7 /Applications/Xcode.app/Contents/Developer/toolschains/XcodeDefault.xctoolschain/usr/bin/clang-arch x86_64-isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk-L/Users/John/Library/Developer/Xcode/DerivedData/Test blxrdnozbbwhcekmouessaprf/Build/Products/Debug-F/Users/John/Library/Developer/Xcode/DerivedData/Test blxrdmnozbbwhcekmouessaprf/Build/Products/Debug-filelist/Users/John/Library/Developer/Xcode/DerivedData/Test blxrdmnozbbwhcekmouessaprf/Build/Intermediates/Test.Build/Objects-normal/x86_64/Test.LinkFileList-mmacox version=10.7-o/Users/John/Library/Developer/Xcode/DerivedData/Test blxrdmnozbbrbwhcekmouessaprf/Build/Products/Debug/Test

ld:重复符号_显示在/Users/John/Library/Developer/Xcode/DerivedData/Test-blxrdnnozbbbrbwhcekmouessaprf/Build/Intermediates/Test.Build/Debug/Test.Build/Objects normal/x86_64/part2.o和/Users/John/Library/Developer/Xcode/DerivedData/Test blxrdmnozbbrbwhcekmouessaprf/Build/Intermediates/Test.Build/Debug/Test.Build/Objects normal/x86_64/main.o用于体系结构x86_64 叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用)

我使用的是Xcode,两个文件都在一个名为
Test

导致错误的原因以及如何修复错误?

删除“
”包括“part2.c”
”并将其更改为“
”包括“part2.h

并移动您的功能声明:

void display(void);
从“
part.c
”文件的顶部插入名为“
part2.h
”的文件,该文件应包含在两个.c文件中(或放在其顶部)。

删除“
”包括“part2.c”
”并将其更改为“
”包括“part2.h

并移动您的功能声明:

void display(void);

从“
part.c
”文件的顶部插入名为“
part2.h
”的文件,该文件应包含在两个.c文件中(或放在其顶部)。

首先,了解如何使用。我已将错误消息中可能相关的唯一部分加粗。首先,了解如何使用。我只将错误消息中可能相关的部分加粗。并确保将这两个.c文件传递给编译器。通常,你真的不应该包括
.c
文件——只要
#包括foo.h
,然后链接到
.c
。并确保将这两个.c文件都传递给编译器。一般来说,你真的不应该包括
.c
文件——只要
#包括foo.h
,然后链接到
.c