小编Ion*_*nic的帖子

Mac OS X和静态提升库 - > std :: string失败

我在使用GCC 4.5的Mac OS X 10.6.6下遇到静态加速库(来自MacPorts的Boost 1.45.0-2,编译为fat/universal(x86/x86_64)库)的一些非常奇怪的问题.

错误消息是

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)
Run Code Online (Sandbox Code Playgroud)

以及一小段示例代码将触发此问题:

#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';
}
Run Code Online (Sandbox Code Playgroud)

将静态boost库链接到二进制文件时,总会出现此问题.但是,动态链接可以正常工作.

更多信息:

测试/使用的gcc版本: Apple GCC 4.2.1(工作/运行),MacPorts GCC 4.5.2(失败)

标记测试/使用:无,-fPIC,-fPIC -g,-fPIC -g -ggdb3 -gdwarf-2 -O0

MP GCC 4.5.2的gdb输出/上述任何标志:

(gdb) run
Starting program: /Users/ionic/crashtest/bin/ctest  Reading …
Run Code Online (Sandbox Code Playgroud)

c++ macos boost static-libraries

6
推荐指数
1
解决办法
3616
查看次数

标签 统计

boost ×1

c++ ×1

macos ×1

static-libraries ×1