1

NTLライブラリとBoost::Asioを使用して、C++で整数因数分解アプリケーションのクライアント/サーバー通信を行うクライアントプログラムとサーバープログラムを作成しました。

両側は、いくつかのヘッダーとcppファイルで構成されています。どちらのプロジェクトも、VisualStudioのWindowsで個別に正常にコンパイルされます。私がしたのは、両方のプロジェクトにNTLとBoostのインクルードパスを追加することだけでした。

Additional include paths: "D:\Downloads\WinNTL-5_5_2\include";D:\boost_1_42_0

さらに、両方のプロジェクトについて、VSの両方のプロジェクトに2つのライブラリパスを追加しました。

Additional library directories: D:\boost_1_42_0\stage\lib;"D:\Documents\Visual Studio 2008\Projects\ntl\Debug"

そして、追加の依存関係の下に追加されました:

ntl.lib

すでに述べたように、Windowsでは正常にコンパイルされます。しかし、大学が提供するLinuxマシンにコードを置くと、次のステートメントでコンパイルしようとします。

c++ -I/appl/htopopt/Linux_x86_64/NTL-5.4.2/include -I/appl/htopopt/Linux_x86_64/boost_1_43_0/include client_protocol.cpp mpqs_client.cpp mpqs_sieve.cpp mpqs_helper.cpp -o mpqs_helper -L/appl/htopopt/Linux_x86_64/NTL-5.4.2/lib -lntl -L/appl/htopopt/Linux_x86_64/gmp-4.2.1/lib -lgmp -lm -L/appl/htopopt/Linux_x86_64/boost_1_43_0/lib -lboost_system -static

これを行うと、ここに投稿したhuugeエラーが発生します。これを修正する方法はありますか?

4

2 に答える 2

1

pthread シンボルが欠落しているため、多くのエラーが発生しています。追加してみる

-lpthread

あなたのリンクラインに。

于 2010-06-08T16:33:51.037 に答える
0

よくわかりませんが、静的にリンクされたバイナリでマルチスレッドを実行することはできないと思います。

于 2010-06-08T16:17:22.113 に答える