由于类似这样的问题:
Mac OS X 和静态提升库 - > std::string 失败
即在调用 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?