我想创建共享map
多个进程可以访问的对象。 最有希望的方法,我发现是从Boost.Interprocess中这个演示代码 ,其中分配map
在管理共享内存的分段对象。 这个问题将主要是关于我在升压问题,但我想也很感激,如果任何人有非升压的替代方法。
我完全新的提升:它看起来令人惊讶,如果巨大的,我被它要求鼓励“的时候,没有什么建设”。 但是,在这种情况下,这一承诺在什么似乎是一场毫无意义的方式打破了,我不能编译,因为内部提升依赖问题的演示。
我在Windows上,使用Visual C ++快讯2010年安装。 保存演示代码后shmap.cpp
我做到以下几点:
"%VS100COMNTOOLS%\..\..\VC\vcvarsall.bat"
cl /EHsc /I boost_1_57_0 shmap.cpp
它编译OK,但后来我得到这个:
LINK : fatal error LNK1104: cannot open file 'libboost_date_time-vc100-mt-s-1_57.lib'
这让我吃惊的多个层面。 (Q1):我没有问图书馆---在何处以及如何提高领导链接指望他们? (Q2):为什么它会要求date_time
特别? 在代码中的任何一点的任何特定功能的日期或时间计算,引用或包含在内。 这是过分热心的毯子依赖的情况下,如果是这样,有没有办法,我可以杂草出来?
无论如何,要尽量明显的第一件事情就是玩游戏:在boost_1_57_0
目录我跑bootstrap.bat
其次是b2
。 地球转了好几个度,提升成功建成,和我一起重试:
cl /EHsc /I boost_1_57_0 shmap.cpp /link /LIBPATH:boost_1_57_0\stage\lib
我仍然得到同样的连接错误。 这是因为b2
似乎已经建库与-mt-
与-mt-gd-
在他们的名字,但不与-mt-s-
链接器所期待的。 Boost的“入门”网页告诉我一下这些代表,但并没有告诉我(Q3):我怎样才能改变,要么被建库的类型,或者链接器所需的类型?