簡體   English   中英

用g ++鏈接C ++中的錯誤

[英]Link error in C++ by g++

請看下面的程序。 為什么我收到錯誤?

#include <stdlib.h>
#include <string>
#include <string.h>
#include <iostream>


using namespace std;

class serverData
{
public:
    static int serverTemp;
    static int server;
};
int main(int argc, char** argv)
{
    string s = "sajad bahmani";
    serverData::server = 90 ;

    const char * a = s.data();
    cout << a[0] << endl;

    return (EXIT_SUCCESS);
}

結合起來,我在嘗試鏈接時遇到此錯誤:

build/Debug/GNU-Linux-x86/main.o: In function `main':
/home/sb23/pr/main.cpp:14: undefined reference to `serverData::server'
collect2: ld returned 1 exit status

靜態成員變量必須在您的一個.CPP文件中分配存儲:

/* static */
int serverData::serverTemp;
int serverData::server;

您剛剛在類中聲明了靜態成員,但尚未定義它們。 你需要在課外定義它們。

//definition
int serverData::serverTemp; //implicitly initialized to 0
int serverData::server = 5; // initialized to 5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM