【发布时间】:2013-03-28 16:19:13
【问题描述】:
由于类似这样的问题:
Mac OS X and static boost libs -> std::string fail
即在调用 boost 文件系统目录迭代器构造函数时,我得到一个运行时错误“未分配释放的指针 *** 在 malloc_error_break 中设置断点进行调试”。我的印象是,如果 boost 和程序使用不同的编译器编译,就会发生这种情况。
所以我正在尝试使用与我的程序相同的编译器重新编译 boost 库,即 macports gcc (g++-mp-4.8)。根据网上的一些说明,我的理解是我编辑tools/build/v2/user-config.jam,指定编译器,所以现在说:
# Configure gcc (default version).
# using gcc ;
# Configure specific gcc version, giving alternative name to use.
# using gcc : 4.8 : g++-mp-4.8 ;
我将 user-config.jam 复制到我的主目录,重新运行 bootstrap.sh 并重新运行 b2。但是,我仍然会出现错误(“未分配被释放的指针 *** 在 malloc_error_break 中设置断点以进行调试”)。这是指定用于编译的编译器的正确程序吗?当我运行 b2 时,如何查看实际使用的编译器 boost?
【问题讨论】: