0

これが私の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:/ Users / John / Library / Developer / Xcode / DerivedData / Test-blxrdmnozbbrbwhcekmouessaprf / Build / Intermediates / Test.build / Debug / Test.build / Objects-normal / x86_64/part2.oおよび/Users/にシンボル_displayを複製John / Library / Developer / Xcode / DerivedData / Test-blxrdmnozbbrbwhcekmouessaprf / Build / Intermediates / Test.build / Debug / Test.build / Objects-normal / x86_64 / main.o for Architecture x86_64 clang:エラー:リンカーコマンドが終了コードで失敗しました1(-vを使用して呼び出しを確認します)

私はXcodeを使用しており、両方のファイルはCプロジェクト内にあります。Test

エラーの原因とその修正方法を教えてください。

4

1 に答える 1

5

" " を削除して " "#include "part2.c"に変更します#include "part2.h

そして、次の関数宣言を移動します。

void display(void);

" " ファイルの先頭から " part.c" という名前のファイルに変換しますpart2.h。このファイルは、両方の .c ファイルに含める (または先頭に配置する) 必要があります。

于 2012-06-28T21:13:33.977 に答える