1

次のエラーが表示されます。

1> main.obj:エラーLNK2019:関数_mainで参照される未解決の外部シンボル "void __cdecl setup(void)"(?setup @@ YAXXZ)1> main.obj:エラーLNK2019:未解決の外部シンボル "void __cdecl display(void) "(?display @@ YAXXZ)関数_main 1> C:\ code \ Project1 \ Debug \ Project1.exeで参照:致命的なエラーLNK1120:2つの未解決の外部

これを解決するにはどうすればよいですか?

関数が使用されるメインクラスは次のとおりです。

#include "interface.h"
using namespace std;

int main(){
    setup();
    display();
    system("pause");
    return 0;
}

これがinterface.cppです

#include <iostream>
#include <string>
#include "interface.h"
using namespace std;
class ui{
    void setup(){
        options[0][0]="Hello";
        options[1][0]="Hello";
        options[2][0]="Hello";
        options[3][0]="Hello";
        options[4][0]="Hello";
        options[5][0]="Hello";
        options[6][0]="Hello";
        options[7][0]="Hello";
        options[8][0]="Hello";
        options[9][0]="Hello";
    }
    void changeOption(int whatOption, string whatText,
                  string prop1, string prop2, string prop3, string prop4, string prop5){
        options[whatOption][0]=whatText;
        options[whatOption][1]=prop1;
        options[whatOption][2]=prop2;
        options[whatOption][3]=prop3;
        options[whatOption][4]=prop4;
        options[whatOption][5]=prop5;
    }
    void display(){
        for(int x=0;x<9;x++){
            cout<<options[x][0]<<endl;
        }
    }
};

そしてここにinterface.hがあります

#include <string>
//#include <iostream>
using namespace std;
#ifndef INTERFACE_H_INCLUDED
#define INTERFACE_H_INCLUDED
    void setup();
    extern string options[10][6];
    void changeOption(int whatOption, string whatText, string prop1, string prop2, string prop3, string prop4, string prop5);
    void display();
#endif INTERFACE_H
4

2 に答える 2

3

これらをグローバル関数として宣言します。

ただし、実装ではそれらをの内部で定義しますclass ui{

と一致する閉じ括弧を削除するclass ui{と、正しく機能するはずです。

于 2012-09-04T20:26:39.223 に答える
0

setup()関数は名前空間内にありますが、それを使おうuiとすると、それを指定していません。ui::setup();代わりに試してください。

の同じソリューションdisplay()

これに加えて、interface.hヘッダーファイルを再検討する必要があります。ここでは、名前空間で宣言を囲まずにこれらの関数を宣言しています。これが、main()関数をコンパイルできたが、リンクできなかった理由です。

于 2012-09-04T20:24:59.457 に答える