3

基于这个优秀的教程,我能够毫无问题地构建 boost 库。但是,我找不到任何生成的 PDB 文件。

boost_1_49_0>b2 --prefix=c:\temp\boost1.49 --toolset=msvc-10.0 --build-type=complete

因为我已经为 boost 构建了 .lib 和 .dll 文件。为了生成所有相应的 pdb,我还应该做些什么最小构建?

4

2 回答 2

8

来自“内置功能”

当您致电 b2 尝试使用--debug-symbols=on

于 2012-04-12T16:33:47.753 回答
2

您可以通过稍微调整 msvc.jam 直接在必要的目录(调试器可能需要)中为静态库构建 pdb。找到rule archive并改变

PDB_NAME on $(>) = $(<[1]:S=.pdb) ;

例如:

PDB_NAME on $(>) = "c:\\Lib\\boost\\stage\\lib\\$(<[1]:S=.pdb:G=)" ;

(免责声明:我只是模糊地知道那个神秘的表达是什么意思,从来没有在任何地方看到它的记录,这纯粹是我的猜测,因此不能保证,但它对我有用)。

DLL 的 PDB 由链接器构建,因此您可以在例如 project-config.jam 中设置其选项:

import toolset ;
using msvc ;
toolset.flags msvc.link LINKFLAGS <link>shared : "/PDB:c:\\Lib\\boost\\stage\\lib\\" : unchecked ;

我确信有一种方法可以自动从系统中获取输出目录。如果有人知道这一点,请更新。

于 2014-01-13T20:49:23.030 回答