Компиляция моей программы Boost / NTL с помощью c ++ в Linux - PullRequest
1 голос
/ 08 июня 2010

Я написал клиентскую программу и серверную программу, которая использует библиотеку NTL и Boost :: Asio для связи клиент-сервер для целочисленного приложения факторизации в C ++.

Обе стороны состоят из нескольких заголовков и файлов cpp. Оба проекта прекрасно компилируются индивидуально под Windows в Visual Studio. Все, что я сделал, это добавил пути включения NTL и Boost в оба проекта:

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

Кроме того, для обоих проектов я добавил два пути к библиотекам в оба проекта в VS:

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

После этого я получаю огромную ошибку, которую я выложил здесь . Любая идея, как это исправить, пожалуйста ??

Ответы [ 2 ]

1 голос
/ 08 июня 2010

Вы получаете много ошибок, связанных с отсутствующими символами pthread. Попробуйте добавить

-lpthread

к вашей ссылке.

0 голосов
/ 08 июня 2010

Я не уверен, но я подозреваю, что вы не можете выполнять многопоточность в статически связанном двоичном файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...