构建C程序时出错

时间:2012-06-28 21:10:50

标签: 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("---------------");

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

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

    return 0;
}

part2.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]);
}

当我尝试编译程序时,这就是我得到的:

  

Ld / Users / John / Library / Developer / Xcode / DerivedData / Test-blxrdmnozbbrbwhcekmouessaprf / Build / Products / Debug / Test normal x86_64       cd / Users / John / Xcode / Test       setenv MACOSX_DEPLOYMENT_TARGET 10.7   /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/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-blxrdmnozbbrbwhcekmouessaprf / Build / Products / Debug -F / Users / John / Library / Developer / Xcode / DerivedData / Test-blxrdmnozbbrbwhcekmouessaprf / Build / Products / Debug -filelist /Users/John/Library/Developer/Xcode/DerivedData/Test-blxrdmnozbbrbwhcekmouessaprf/Build/Intermediates/Test.build/Debug/Test.build/Objects-normal/x86_64/Test.LinkFileList -mmacosx-version-min = 10.7 -o / Users / John / Library / Developer / Xcode / DerivedData / Test-blxrdmnozbbrbwhcekmouessaprf / Build / Products / Debug / Test

     

ld:/ strong /John/Library/Developer/Xcode/DerivedData/Test-blxrdmnozbbrbwhcekmouessaprf/Build/Intermediates/Test.build/Debug/Test.build/Objects-normal中的重复符号_display 架构x86_64的/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   clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

我正在使用Xcode,两个文件都在名为Test

的C项目中

导致错误的原因是什么?如何解决?

1 个答案:

答案 0 :(得分:5)

删除“#include "part2.c"”并将其更改为“#include "part2.h

移动你的函数声明:

void display(void);

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