У меня возникли очень странные проблемы со статическими библиотеками ускорения (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