0

私は今までに 7 時間プログラミングを行ってきましたが、疲労のために問題がまったく見えません。私はいくつかの余分な目が必要です。

このコードがコンパイルされないのはなぜですか???

bool readFromFile(const char*, Graph[5]);
bool writeToFile(Graph[5]);

int main(int argc, char* argv[]) {
    .
    .
    .

    Graph graph[5];
    if(readFromFile(argv[1], graph) == false){    //read and error check
        cout << "Returning from main(). . ." << endl;
        return -1;
    }

    if(writeToFile(graph) == false){
        cout << "Returning from main(). . ." << endl;
        return -1;
    }

    return 0;
}

bool writetoFile(Graph graph[5]){
    FILE* fp;
    fp = fopen("output2.txt","w");
    if(fp == NULL){
        cout << "Error opening file: output2.txt" << endl;
        return false;
    }

    //count pairs
    int pairCount[5] = {0};


    fclose(fp);
    return true;
}

NetBeans を使用して、実際には F9 (コンパイル) を押すとコンパイルされますが、実行しようとすると:

g++     -o dist/Debug/GNU-Linux-x86/algorithm_hw1_task2 build/Debug/GNU-Linux-x86/Graph.o build/Debug/GNU-Linux-x86/main.o build/Debug/GNU-Linux-x86/Node.o  
build/Debug/GNU-Linux-x86/main.o: In function `main':
/home/varaquilex/NetBeansProjects/algorithm_hw1_task2/main.cpp:40: undefined reference to `writeToFile(Graph*)'
collect2: error: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/algorithm_hw1_task2] Error 1
make[2]: Leaving directory `/home/varaquilex/NetBeansProjects/algorithm_hw1_task2'
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory `/home/varaquilex/NetBeansProjects/algorithm_hw1_task2'
make: *** [.build-impl] Error 2

また、g ++を使用してコンパイルしようとすると

/tmp/ccM7A6te.o: In function `main':
main.cpp:(.text+0x187): undefined reference to `writeToFile(Graph*)'
collect2: error: ld returned 1 exit status

注: 質問は早急に削除します。ご清聴ありがとうございました。

4

2 に答える 2

1

関数定義のwritetoFile代わりにタイプミス:を行いました。writeToFile

于 2013-03-24T00:59:20.233 に答える
1

関数writeToGraph()を呼び出したときにプロトタイプとコードで名前を付けましたが、関数writetoGraph()を定義したときに名前を付けました (大文字と小文字の違いに注意してください)。

結果、繋がらない。

于 2013-03-24T00:56:38.040 に答える