私はFacebookのProxygen C++ httpライブラリをgbubからUbuntu 16.04でビルドしたいと思っています。ここで私は依存関係をインストールするdeps.shコマンドと一緒に設定した環境です。Ubuntuの下でProxygenをビルドする16.04
gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.1) 5.4.0 20160609
export CPPFLAGS="-std=c++14"
export CXXFLAGS="-std=c++14"
git clone [email protected]:facebook/proxygen.git
cd proxygen/proxygen && ./deps.sh
その愚かさの依存関係を構築して、私の道のほとんどを得たが、私は、不完全な型エラーを取得しています:
libtool: compile: g++ -DHAVE_CONFIG_H -I./.. -pthread -I/usr/include -std=c++14 -std=gnu++1y -std=c++14 -MT io/async/AsyncPipe.lo -MD -MP -MF io/async/.deps/AsyncPipe.Tpo -c io/async/AsyncPipe.cpp -fPIC -DPIC -o io/async/.libs/AsyncPipe.o
In file included from /usr/include/c++/5/bits/move.h:57:0,
from /usr/include/c++/5/bits/stl_pair.h:59,
from /usr/include/c++/5/utility:70,
from /usr/include/c++/5/algorithm:60,
from ./../folly/Conv.h:26,
from Conv.cpp:16:
/usr/include/c++/5/type_traits: In instantiation of ‘struct std::make_unsigned<__int128>’:
Conv.cpp:528:52: required from ‘folly::detail::ConversionResult<T> folly::detail::digits_to(const char*, const char*) [with Tgt = __int128]’
Conv.cpp:658:16: required from here
/usr/include/c++/5/type_traits:1757:62: error: invalid use of incomplete type ‘class std::__make_unsigned_selector<__int128, false, false>’
{ typedef typename __make_unsigned_selector<_Tp>::__type type; };
^
/usr/include/c++/5/type_traits:1721:11: note: declaration of ‘class std::__make_unsigned_selector<__int128, false, false>’
class __make_unsigned_selector;
^
/usr/include/c++/5/type_traits: In instantiation of ‘struct std::make_unsigned<__int128 unsigned>’:
Conv.cpp:528:52: required from ‘folly::detail::ConversionResult<T> folly::detail::digits_to(const char*, const char*) [with Tgt = __int128 unsigned]’
Conv.cpp:661:16: required from here
誰もがこれを試して解決しましたか?私はまだコードベースに精通していない。ティア。
FYI Ubuntu 16.04が引き上げたバージョンは1.58.0です。 – moodboom
コンパイラオプションは、 "-std = C++ 14 -std = gnu ++ 1y -std = C++ 14"のようになりました。あなたはこのようなコードをコンパイルしようとした場合: の#includeを int型のmain(){ \t自動A =のstd :: make_unsigned <__int128>(); } コンパイルオプションのために失敗します。 CPPFLAGS、CXXFLAGSを削除するだけです。 –
vadikrobot
ありがとう@vadikrobot。私は[gnu ++ 1y]を設定していなかったので、私はC++ 14を試していたのです。 – moodboom