对于我的学士论文,我正在实现一个分解版本的算法来分解大整数(找到主因式分解)。这在例如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