0

Ubuntu 13.10 で websocket++ サーバーを作成し、Linux Mint 16 で実行しようとしています。

すべての依存関係をインストールしましたが、その下の最初の行は決して起動しないmainaです。cout

これはコンパイルコマンドです:

g++ -o Dgn Dgn.cpp ed25519-donna-master/ed25519.o 
  -Og -std=c++0x -I ~/Dgn -D_WEBSOCKETPP_CPP11_STL_ -D_WEBSOCKETPP_NO_CPP11_REGEX_ 
  -lboost_regex -lboost_system -L/usr/lib -lssl -lcrypto -pthread -lpqxx 
  -lboost_thread -ljson_spirit -lgmp -lgmpxx

制限されたポートを使用するために with を実行するとsudo、コマンド ラインにエラーが返されることなく、すぐに失敗します。

なしで実行するとsudo、出力Segmentation Faultされ、コマンドラインにすぐに失敗します。

のディレクトリ~/Dgnが新しいシステムに存在します。

簡単で簡単なテストを行い、基本的な websocket++ の例が正常にコンパイルおよび実行できるかどうかを確認したところ、成功しました。

どちらのシステムも 64 ビットです。唯一の違いはディストリビューションですが、Linux Mint 16 は Ubuntu 13.10 に基づいており、セットアップするすべてのコマンドは同じでした。

これを別のシステムで実行できるようにするにはどうすればコンパイルできますか?


さらなるテストとして、新しいシステムでコンパイルしたところ、動作しました。

あるシステムでコンパイルして別のシステムで実行することはできませんか?

GDB

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7de58da in ?? () from /lib64/ld-linux-x86-64.so.2
4

1 に答える 1

1

行が起動しないという事実cout(私はそれがあると仮定します<< std::endl) は、クラッシュが静的オブジェクト コンストラクターで発生することを意味します。デバッグする最も簡単な方法は、コア ダンプを許可し (「参考文献」を参照man limits)、gdb でダンプを検査することです。これまでのところ、私が考えることができるのはそれだけです。詳細が役立ちます。

于 2014-04-17T21:14:56.827 に答える