Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用c++;在Linux上 我编写了一个客户端程序和一个服务器程序,它使用NTL库和Booo::Asio,为C++中的整数分解应用程序做客户端/服务器通信。_C++_Boost_Ntl - Fatal编程技术网

用c++;在Linux上 我编写了一个客户端程序和一个服务器程序,它使用NTL库和Booo::Asio,为C++中的整数分解应用程序做客户端/服务器通信。

用c++;在Linux上 我编写了一个客户端程序和一个服务器程序,它使用NTL库和Booo::Asio,为C++中的整数分解应用程序做客户端/服务器通信。,c++,boost,ntl,C++,Boost,Ntl,两侧都由几个头文件和cpp文件组成。这两个项目都可以在VisualStudio的Windows上单独编译。我所做的只是将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\

两侧都由几个头文件和cpp文件组成。这两个项目都可以在VisualStudio的Windows上单独编译。我所做的只是将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

这样做之后,我得到了一个huuuge错误,我发布了这个错误。你知道如何解决这个问题吗?

我不确定,但我怀疑你不能在静态链接的二进制文件中执行多线程。

我不确定,但我怀疑你不能在静态链接的二进制文件中执行多线程。

你在缺少pthread符号方面遇到了很多错误。尝试添加

-lpthread

链接到链接行。

由于缺少pthread符号,您会遇到很多错误。尝试添加

-lpthread

到您的链接行。

您好,我尝试添加-lpthread。它解决了很多问题。然后我又添加了-lboost_线程,现在我在这里得到了这个错误:有什么帮助吗?@Martin:我想剩下的错误意味着,尽管你正在静态地将boost链接到你的应用程序。您没有将boost本身静态链接到glibc,即您的boost库仍然依赖于其他共享库,如glibc。我如何修复此问题?是否需要再次编译Boost?这是由一位大学系统管理员处理的,不是我自己。@Martin:嗯,我想我对最后一部分的看法是错误的。很可能你拥有的boost库是.a文件而不是.so?@Troubadour:我有.a文件和.so文件,似乎每个库都有。嗨,我试过添加-lpthread。它解决了很多问题。然后我又添加了-lboost_线程,现在我在这里得到了这个错误:有什么帮助吗?@Martin:我想剩下的错误意味着,尽管你正在静态地将boost链接到你的应用程序。您没有将boost本身静态链接到glibc,即您的boost库仍然依赖于其他共享库,如glibc。我如何修复此问题?是否需要再次编译Boost?这是由一位大学系统管理员处理的,不是我自己。@Martin:嗯,我想我对最后一部分的看法是错误的。很可能你拥有的boost库是.a文件,而不是.so?那么?@Troubadour:我似乎拥有每个库的.a文件和.so文件。