1

使用時に XCode でリンクの問題が発生する理由がわかりません

    string create_base_uri(string host, int port, string dbname){
      std::ostringstream ostr; //output string stream
      ostr << port; //use the string stream just like cout,
      string port_string = ostr.str();
      return "http://" + host + ":" + port_string + "/" + dbname;
}

アーキテクチャ x86_64 の未定義シンボル: "CouchServer::create_base_uri(std::__1::basic_string, std::__1::allocator >, int, std::__1::basic_string, std::__1::allocator >)",参照元: CouchServer::get_document_by_id(std::__1::basic_string, std::__1::allocator >) の couch_server.o ld: アーキテクチャ x86_64 のシンボルが見つかりませんでした。clang: エラー: リンカ コマンドが終了コードで失敗しました。 1 (呼び出しを表示するには -v を使用)

誰かが私を助けることができますか?

4

1 に答える 1

1

クラスに関連するメンバー関数を定義する必要があります。

string CouchServer::create_base_uri(string host, int port, string dbname) {
    //..
}

代わりに、無料の関数を定義しています。

string create_base_uri(string host, int port, string dbname) {
    //..
}

興味深いことに、クラスの他のメンバーを参照していないため、コンパイルされます。本当は無料の機能にしたほうがいいかもしれません!現在プライベート メンバーである場合は、代わりに匿名の名前空間に配置できます。他の場所で役立つ場合は、ユーティリティ関数にすることができます。

于 2013-04-14T19:24:54.767 に答える