我正在尝试构建一个使用 boost 的库,当库编译正常时,它遇到了一个我不明白的奇怪的链接器错误。我构建并安装了 Boost 1.54(也尝试了 1.52),效果很好。
它声称无法找到 __assert_fail,我认为这是标准库的一部分。我试图用 64 位构建所有东西。我在 Fedora 16 上,使用 gcc 4.6.3
有任何想法吗?
做全是 make[1]: 进入目录`/data/adrian/code/ext/mapper/cmappertools' /bin/sh ./libtool --tag=CXX --mode=link g++ -g -O2 -o libcmappertools.la -rpath /usr/local/lib/python2.7/site-packages cmappertools.lo libtool:链接:g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-redhat-linux/4.6.3/../../../../lib64/crti.o /usr/ lib/gcc/x86_64-redhat-linux/4.6.3/crtbeginS.o .libs/cmappertools.o -L/usr/lib/gcc/x86_64-redhat-linux/4.6.3 -L/usr/lib/gcc/ x86_64-redhat-linux/4.6.3/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/ gcc/x86_64-redhat-linux/4.6.3/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-redhat-linux/4.6.3/crtendS.o /usr /lib/gcc/x86_64-redhat-linux/4.6.3/../../../../lib64/crtn.o -O2 -Wl,-soname -Wl,libcmappertools.so.0 -o 。库/libcmappertools.so.0.0.0 .libs/cmappertools.o:在函数“condition_variable”中: /usr/local/include/boost/thread/pthread/condition_variable_fwd.hpp:69: 未定义对“__assert_fail”的引用 /usr/local/include/boost/thread/pthread/condition_variable_fwd.hpp:69: 未定义对“__assert_fail”的引用 .libs/cmappertools.o:在函数“~mutex”中: /usr/local/include/boost/thread/pthread/mutex.hpp:108: 未定义对“__assert_fail”的引用 .libs/cmappertools.o:在函数“condition_variable”中: /usr/local/include/boost/thread/pthread/condition_variable_fwd.hpp:69: 未定义对“__assert_fail”的引用 .libs/cmappertools.o:在函数“~mutex”中: /usr/local/include/boost/thread/pthread/mutex.hpp:108: 未定义对“__assert_fail”的引用 .libs/cmappertools.o:/usr/local/include/boost/smart_ptr/shared_array.hpp:194: 更多未定义的对 `__assert_fail' 的引用如下 /usr/local/bin/ld: .libs/libcmappertools.so.0.0.0: 隐藏符号“__assert_fail”未定义 /usr/local/bin/ld:最终链接失败:错误值 collect2: ld 返回 1 个退出状态 make[1]: *** [libcmappertools.la] 错误 1 make[1]: 离开目录`/data/adrian/code/ext/mapper/cmappertools' make: *** [全部] 错误 2