У меня есть эта программа, которая использует Boost :: Asio для сокетов. Я в значительной степени изменил код из примеров Boost. Программа компилируется и запускается так же, как и на Windows в VS. Однако, когда я компилирую программу в Linux и запускаю ее, я получаю ошибку сегментации.
Я разместил код здесь
Команда, которую я использую для компиляции, такова:
c++ -I/appl/htopopt/Linux_x86_64/NTL-5.4.2/include
-I/appl/htopopt/Linux_x86_64/boost_1_43_0/include
mpqs.cpp mpqs_polynomial.cpp mpqs_host.cpp -o mpqs_host
-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
-lboost_thread -static -lpthread
Комментируя код, я обнаружил, что получаю ошибку сегментации из-за следующей строки:
boost::asio::io_service io_service;
Может ли кто-нибудь оказать какую-либо помощь относительно того, в чем может быть проблема (и решение)?
Спасибо!
Редактировать: я попытался изменить программу на минимальный пример, не используя другие библиотеки или заголовки, просто boost / asio.hpp:
#define DEBUG 0
#include <boost/asio.hpp>
int main(int argc, char* argv[]) {
boost::asio::io_service io_service;
return 0;
}
Я также удалил другие библиотечные включения и ссылки при компиляции, однако этот минимальный пример все еще вызывает ошибку сегментации.