제 학사 학위 논문의 경우, 큰 정수를 인수 분해 (소수 분해)하는 알고리즘의 분산 버전을 구현하고 있습니다. 이것은 예를 들어. RSA 암호 시스템의 보안.Boost :: Asio for C++의 문제점
내 비전은 클라이언트 (Linux 또는 Windows)가 응용 프로그램을 다운로드하고 일부 숫자를 계산한다는 것입니다 (이들은 독립적이어서 병렬 처리에 적합합니다). 번호 (매우 자주 발견되지 않음)는 마스터 서버로 전송되어 이러한 번호를 수집합니다. 일단 마스터 서버가 충분한 수를 수집하면 나머지 계산을 수행하게되며 쉽게 계산할 수 없습니다.
어쨌든, 기술. Boost :: Asio를 사용하여 소켓 클라이언트/서버 구현을 수행하고 클라이언트와 마스터 서버 간의 통신을 고려했습니다. 이후 나는 리눅스와 윈도우 모두를 위해 컴파일하고 싶었고, 나는 창문이 시작하기에 좋은 장소라고 생각했다.
bootstrap
.\bjam
것은 그것은 모두가 잘 컴파일 : 그것은 Boost Getting Started page 말했다 그래서 나는 그것을 부스트 라이브러리를 다운로드하고 컴파일. 그런 다음 자습서 예제 중 하나 인 asio에서 client.cpp를 컴파일하려고 시도합니다 (여기에 편집 : 제한 때문에 게시 링크가 없습니다).
cl /EHsc /I D:\Downloads\boost_1_42_0 client.cpp
그러나 나는이 오류를 얻을 : :이처럼, 마이크로 소프트 비주얼 스튜디오 2008는 Visual C++ 컴파일러를 사용하고
/out:client.exe
client.obj
LINK : fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-s-1_42.lib'
사람이 잘못 될 수 있는지 어떤 생각을 가지고, 또는 내가 어떻게 움직일 수를 앞으로? 나는 C++을위한 간단한 클라이언트/서버 소켓 프로그램을 얻기 위해 일주일 내내 노력했지만 행운이 없었다. 심각한 좌절감이 있습니다.
감사합니다.
안녕하세요. mch, 답변 해 주셔서 감사합니다. libboost_system-vc90-mt.lib libboost_system-vc90-MT-1_42.lib libboost_system : 부스트의 새로운 컴파일을 수행 한 후, 나는 내가 필요로하는 일, 예를 들어 매우 유사 이름이 일부 lib 디렉토리 파일을 찾을 수 -vc90-mt-gd.lib libboost_system-vc90-mt-gd-1_42.lib 불만을 제기하는 정확한 이름은 없지만 libboost_system-vc90-mt-s-1_42.lib입니다. 그래서 여기서 어디로 가야할 지 모르겠습니다. -s는 정적 라이브러리라는 것을 의미합니까? 그렇다면 Boost에 내가 그렇게 컴파일하려고한다고 어떻게 말할 수 있습니까? 명령 프롬프트에서 모든 것을 컴파일하고 있습니다. –
-s는 C++ 표준 라이브러리와 런타임에 정적으로 링크 된 라이브러리를 찾고 있음을 의미합니다. 이 라이브러리를 빌드하려면 가능한 모든 조합을 빌드해야하는'bjam link = static link = shared runtime-link = static runtime-link = shared'를 시도하십시오. – mch
고마워 mch, 부스트를 새로 압축 해제하고 부스트 스트랩을 수행하고 bjam link = static runtime-link = static을 수행하여 작동 시켰습니다. 그런 다음 라이브러리 경로 (/ stage/lib /)를 cl에 플래그로 추가했습니다. 감사합니다. –