我正在编写一个克隆Boost official repository的脚本,并仅启动我需要的模块。
我读了git submodule man page,找到了一种只更新某些模块的方法。我甚至不需要编译,因为我只使用multi_index。
git clone -b boost-1.60.0 https://github.com/boostorg/boost.git boost
cd boost
git submodule update --init libs/multi_index/ tools/build
但我想通过使用模块名称(例如git submodule update
中的multi_index
)而不是路径(例如.gitsubmodules
)
libs\multi_index
命令
我怎样才能做到这一点?
此外,当我想使用该设置时,boost/version.hpp
缺失
我执行了boostrap.sh
和./b2 --with-multi_index
,但它回复了error: wrong library name 'multi_index' in the --with-<library> option.
如何生成boost/version.hpp
CMake
要求的find_package(Boost REQUIRED)
?
/usr/share/cmake-3.0/Modules/FindBoost.cmake:699(file)中的CMake错误: 文件STRINGS文件 “/home/leflou/PROJECTS/tradingsuite/FinancialMarket/Server/boost/libs/boost/version.hpp” 无法阅读。 呼叫堆栈(最近一次呼叫): FinancialMarket / Server / CMakeLists.txt:5(find_package)
答案 0 :(得分:1)
首先,每当更新库时,您需要在主仓库中stm = db.prepareStatement("INSERT INTO ITEM (ID, TYPE, TITEL, UITGELEEND) VALUES (?, ?, ?, ?)");
db.setAutoCommit(false);
for (int n = 0; n < ItemLijst.getItems().size(); n++) {
Item huidigItem = ItemLijst.getItemObvIdx(n);
stm.setString(1, huidigItem.getID().toString());
stm.setString(2, huidigItem.getType().toString());
stm.setString(3, huidigItem.getTitel());
stm.setString(4,String.valueOf(huidigItem.isUitgeleend()));
stm.addBatch();
}
stm.executeBatch();
db.commit();
,因此库头的所有符号链接都会在./b2 headers
子目录中更新。
你似乎忘记了Multi Index依赖于许多其他的boost库 - 需要在更新中同步。
E.g。 BMI使用MPL,元组和其他许多:
boost/
你应该看 BCP 做正确的提取