2010-06-08 5 views
1

C++에서 정수 분해 애플리케이션의 클라이언트/서버 통신을 수행하기 위해 NTL 라이브러리와 Boost :: Asio를 사용하는 클라이언트 프로그램과 서버 프로그램을 작성했습니다.리눅스에서 C++로 Boost/NTL 프로그램 컴파일하기

양면은 여러 헤더와 cpp 파일로 구성됩니다. 두 프로젝트 모두 Visual Studio의 Windows에서 개별적으로 잘 컴파일됩니다. 내가 한 모든이, 두 프로젝트에 NTL의 포함 경로를 추가하고 향상이었다

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에서는 잘 컴파일됩니다. 내가 대학에서 제공하는 리눅스 시스템에서 코드를 삽입 할 때, 나는 내가 here을 게시 huuuge 오류를 얻을,이 일을하면 다음과 같은 성명

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 

컴파일하려고합니다. 어떤 생각을 어떻게 고칠 수 있니, 제발 ??

답변

0

확실하지 않지만 고정 링크 된 바이너리에서 멀티 스레딩을 할 수 없다고 생각됩니다.

1

누락 된 pthread 기호와 관련하여 많은 오류가 발생합니다. 귀하의 링크 라인에

-lpthread 

을 추가하십시오.

+0

안녕하세요, -lpthread를 추가하려고했습니다. 그것은 많은 문제를 해결했습니다. 그런 다음 -lboost_thread도 추가했습니다. 이제이 오류가 발생합니다. http://pastebin.com/bVBKfcKh 이 문제에 대한 도움이 필요하십니까? –

+0

@Martin : 남은 오류는 앱에 정적으로 부스트를 연결하더라도 의미가 있다고 생각합니다. 당신은 boost 자체를 glibc에 정적으로 링크하지 않았고, 즉 boost 라이브러리는 여전히 glibc와 같은 다른 공유 라이브러리에 의존합니다. – Troubadour

+0

어떻게 해결할 수 있습니까? Boost를 다시 컴파일해야할까요? 이것은 대학 시스템 관리자가 처리했으며 나 자신이 아닙니다. –

관련 문제