對於我的學士論文,我正在實現一個分解版本的算法來分解大整數(找到主因式分解)。這在例如RSA密碼系統的安全性。我的願景是,客戶端(Linux或Windows)將下載應用程序並計算一些數字(這些數字是獨立的,因此適合並行化)。這些數字(經常沒有找到)將被髮送到主服務器,以收集這些數字。一旦主服務器收集到足夠的數字,它就會完成其餘的計算,這不容易並行化。Boost :: Asio for C++的問題
無論如何,以技術。我正在考慮使用Boost :: Asio來執行套接字客戶端/服務器實現,以便客戶端與主服務器進行通信。由於我想爲linux和windows編譯,所以我認爲windows將是最好的開始。於是我下載了Boost庫和編譯它,因爲它在Boost Getting Started page說:
bootstrap
.\bjam
這一切都編譯就好了。然後我嘗試編譯一個來自Asio的教程示例client.cpp,發現(這裏..編輯:由於限制,不能發佈鏈接)。我使用Visual C++編譯器從Microsoft Visual Studio 2008中,像這樣:
cl /EHsc /I D:\Downloads\boost_1_42_0 client.cpp
但我得到這個錯誤:
/out:client.exe
client.obj
LINK : fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-s-1_42.lib'
任何人有任何想法可能是錯誤的,或者我怎麼可以移動前鋒?我一整週都在努力,爲C++工作獲得一個簡單的客戶/服務器套接字程序,但沒有運氣。嚴重的挫折踢英寸
謝謝你提前。
你好,謝謝你的回答。 做加速的全新編譯後,我發現有名字很相似,我需要的,例如一些.lib文件: libboost_system-VC90-mt.lib libboost_system-VC90-MT-1_42.lib libboost_system -vc90-mt-gd.lib libboost_system-vc90-mt-gd-1_42.lib 但是沒有與它正在抱怨的確切名稱無關,它是 libboost_system-vc90-mt-s-1_42.lib。所以我不確定該從哪裏出發? -s是否意味着它是一個靜態庫,如果是這樣,我該如何告訴Boost我想要這樣編譯? 我正在編譯一切從命令提示符。 – 2010-04-10 17:49:14
-s表示它正在查找靜態鏈接到C++標準庫和運行庫的庫。要構建這個庫,請嘗試'bjam link = static link = shared runtime-link = static runtime-link = shared',這應該構建所有可能的組合。 – mch 2010-04-10 21:03:38
感謝mch, 我通過做一個新的解壓縮boost,並做booststrap,其次是bjam link = static runtime-link = static。然後我添加了庫路徑(/ stage/lib /)作爲cl的標誌。 謝謝! – 2010-04-11 16:23:52