Mac OS X и библиотеки статического ускорения -> std :: string fail

У меня возникли очень странные проблемы со статическими библиотеками ускорения (Boost 1.45.0-2 из MacPorts, скомпилированные как библиотеки fat / universal (x86 / x86_64)) в Mac OS X 10.6.6 с GCC 4.5.

Сообщение об ошибке

main(78485) malloc: *** error for object 0x1000e0b20: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
[1]    78485 abort (core dumped)

и небольшой фрагмент кода примера, который вызовет эту проблему:

#define BOOST_FILESYSTEM_VERSION 3
#include <boost/filesystem.hpp>
#include <iostream>

int main (int argc, char **argv) {
  std::cout << boost::filesystem::current_path ().string () << '\n';
}

Эта проблема всегда возникает при компоновке статических библиотек повышения в двоичный файл. Однако динамическое связывание будет работать нормально.

Еще больше информации:

Проверенные / используемые версии gcc: Apple GCC 4.2.1 (работает / запускается), MacPorts GCC 4.5. Я действительно хотел бы использовать стабильную на данный момент версию GCC.

Есть ли у кого-нибудь указатели на то, почему это происходит, или даже, возможно, решение (вместо использования обходного пути динамической библиотеки)?

С уважением,

Mihai

6
задан Ionic 15 January 2011 в 13:50
поделиться