0

以下のリンクを使用して、Facebookの愚かなライブラリを構築しました

https://github.com/facebook/folly

#include <iostream>
#include <stdlib.h>
#include <algorithm>
#include <typeinfo>
#include <vector>
#include "folly/FBVector.h"
int main()
{
        folly::fbvector<int> vec;
        folly::fbvector<int>::iterator vIter;

        int i = 0;

        for(i = 0;i < 10;i++)
        {
                vec.push_back(i);
        }

        for(i = 0 ; i <=vec.size();i++)
        {
                cout << vec[i] << endl;
        }

        vec.erase(vec.begin()+ 5);

        vec.insert(vec.begin()+5,25);
        vec.insert(vec.begin()+5,5);
        vec.insert(vec.begin()+5,5);

        sort(vec.begin(),vec.end());

        cout << "Using Iteration Concept " << endl;
        for(vIter = vec.begin() ; vIter != vec.end();vIter++)
        {
                cout << *vIter << endl;
        }

        return 0;
}

このコードを書いた後、コンパイルしたところ..コンパイル中に次の問題が発生しました..

syscon@syscon-OptiPlex-3020:~/Documents/work/folly/folly-master$ g++ -o stl stl.cpp -std=c++11 -lboost_system

/tmp/cc2WeDlr.o: 関数folly::usingJEMalloc()':stl.cpp:(.text._ZN5folly13usingJEMallocEv[_ZN5folly13usingJEMallocEv]+0x2d): undefined reference tofolly::usingJEMallocSlow()' collect2: エラー: ld が 1 つの終了ステータスを返しました

この問題を解決するには、どのライブラリを含める必要がありますか?

4

1 に答える 1

2

その特定のシンボルはhttps://github.com/facebook/folly/blob/master/folly/Malloc.cppから来ているので、コンパイルされた folly ライブラリの一部です (つまり、単なるヘッダーのみの依存関係ではありません)。それに対してリンクする必要があります。

folly をどのようにコンパイル/インストールしたかによって、問題を修正する方法が決まります。たとえば-lfolly、コンパイル行に追加します。

于 2015-03-27T00:38:36.437 に答える