我正在尝试使用 macports 安装 libstdcxx,但我一直遇到错误,但我不确定是什么原因造成的。
我正在运行 Mac OS X Server 10.4.11 的机器上工作。我不确定安装了哪个版本的 Xcode,但我计算出组件版本是 DevToolsCore-798.0 和 DevToolsSupport-794.0。我还在使用在 virtualenv 中运行的 macports(配置了 的 macports prefix=/cluster/plaw/regenv/
)。我之前在 virtualenv 中使用过 macports 没有问题。
我在这里发现,由于 ld64 的问题,libstdcxx 有时会出现问题。我遵循了大多数建议的解决方案(重新安装 ld64、使用 ld64+llvm31、以不同的顺序安装等),但无济于事。我在这里也发现了类似的问题,但是票没有解决。
所以,我想知道这是否只是旧操作系统的问题,我对此无能为力(系统管理员不愿意更新)。以下是安装日志的一部分,如果有人可以发现可能导致问题的原因。
这些是我安装的端口(如果有区别的话)
apple-gcc42 @5666.3_10+bootstrap (active)
autoconf @2.69_0 (active)
automake @1.13.1_0 (active)
bzip2 @1.0.6_0 (active)
cctools @806_2 (active)
cctools-headers @836_0 (active)
cloog @0.17.0_1 (active)
db46 @4.6.21_7 (active)
dyld-headers @210.2.3_0 (active)
expat @2.1.0_0 (active)
gcc_select @0.1_7 (active)
gdbm @1.10_2 (active)
gettext @0.18.2_0 (active)
glpk @4.47_0 (active)
gmake @3.82_0 (active)
gmp @5.0.5_0 (active)
gperf @3.0.4_2 (active)
help2man @1.40.13_0 (active)
isl @0.10_1 (active)
ld64 @97.17_2+llvm31 (active)
libedit @20121213-3.0_0 (active)
libffi @3.0.11_1 (active)
libiconv @1.14_0 (active)
libmpc @1.0.1_0 (active)
libtool @2.4.2_3 (active)
libunwind-headers @35.1_0 (active)
llvm-3.1 @3.1_6 (active)
llvm_select @0.2_0 (active)
m4 @1.4.16_0 (active)
mpfr @3.1.1-p2_0 (active)
ncurses @5.9_1 (active)
openssl @1.0.1c_0 (active)
p5.12-locale-gettext @1.50.0_7 (active)
perl5 @5.12.4_0+perl5_12 (active)
perl5.12 @5.12.4_1 (active)
ppl @1.0_0 (active)
python27 @2.7.3_1 (active)
python_select @0.3_2 (active)
sqlite3 @3.7.15.2_0 (active)
xz @5.0.4_0 (active)
zlib @1.2.7_0 (active)
安装日志的输出:
:info:build /usr/bin/gcc-4.0 -arch i386 -g -fkeep-inline-functions -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -Wold-style-definition -fno-common -DHAVE_CONFIG_H -L/cluster/plaw/regenv/lib -o cc1plus \
:info:build cp/cp-lang.o c-family/stub-objc.o cp/call.o cp/decl.o cp/expr.o cp/pt.o cp/typeck2.o cp/class.o cp/decl2.o cp/error.o cp/lex.o cp/parser.o cp/ptree.o cp/rtti.o cp/typeck.o cp/cvt.o cp/except.o cp/friend.o cp/init.o cp/method.o cp/search.o cp/semantics.o cp/tree.o cp/repo.o cp/dump.o cp/optimize.o cp/mangle.o cp/cp-objcp-common.o cp/name-lookup.o cp/cxx-pretty-print.o cp/cp-gimplify.o tree-mudflap.o attribs.o incpath.o c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o c-family/c-format.o c-family/c-gimplify.o c-family/c-lex.o c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o c-family/c-semantics.o c-family/c-ada-spec.o i386-c.o darwin-c.o cc1plus-checksum.o main.o tree-browser.o libbackend.a libcommon-target.a libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a libcommon.a ../libcpp/libcpp.a -liconv ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -L/cluster/plaw/regenv/lib -lcloog-isl -lisl -L/cluster/plaw/regenv/lib -lppl_c -lppl -lgmpxx -L/cluster/plaw/regenv/lib -L/cluster/plaw/regenv/lib -L/cluster/plaw/regenv/lib -lmpc -lmpfr -lgmp -lz
:info:build /usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: warning suggest use of -bind_at_load, as lazy binding may result in errors or different symbols being used
:info:build /usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: Undefined symbols:
:info:build typeinfo for std::logic_error
:info:build typeinfo for std::runtime_error
:info:build typeinfo for std::basic_streambuf<char, std::char_traits<char> >
:info:build typeinfo for std::bad_alloc
:info:build typeinfo for std::exception
:info:build typeinfo for int
:info:build VTT for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >
:info:build vtable for std::basic_istream<char, std::char_traits<char> >
:info:build vtable for std::basic_ostream<char, std::char_traits<char> >
:info:build vtable for std::basic_streambuf<char, std::char_traits<char> >
:info:build vtable for std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >
:info:build vtable for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >
:info:build vtable for std::basic_ios<char, std::char_traits<char> >
:info:build operator delete(void*)
:info:build operator new(unsigned long)
:info:build operator delete[](void*)
:info:build operator new[](unsigned long)
:info:build symbol ___gmpz_neg used from dynamic library /cluster/plaw/regenv/lib/libgmp.dylib(single module) not from earlier dynamic library /cluster/plaw/regenv/lib/libppl_c.4.dylib(single module)
:info:build collect2: ld returned 1 exit status
:info:build make[3]: *** [lto1] Error 1
:info:build make[3]: *** Waiting for unfinished jobs....
:info:build /usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: warning suggest use of -bind_at_load, as lazy binding may result in errors or different symbols being used
:info:build /usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: Undefined symbols:
:info:build typeinfo for std::logic_error
:info:build typeinfo for std::runtime_error
:info:build typeinfo for std::basic_streambuf<char, std::char_traits<char> >
:info:build typeinfo for std::bad_alloc
:info:build typeinfo for std::exception
:info:build typeinfo for int
:info:build VTT for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >
:info:build vtable for std::basic_istream<char, std::char_traits<char> >
:info:build vtable for std::basic_ostream<char, std::char_traits<char> >
:info:build vtable for std::basic_streambuf<char, std::char_traits<char> >
:info:build vtable for std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >
:info:build vtable for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >
:info:build vtable for std::basic_ios<char, std::char_traits<char> >
:info:build operator delete(void*)
:info:build operator new(unsigned long)
:info:build operator delete[](void*)
:info:build operator new[](unsigned long)
:info:build symbol ___gmpz_neg used from dynamic library /cluster/plaw/regenv/lib/libgmp.dylib(single module) not from earlier dynamic library /cluster/plaw/regenv/lib/libppl_c.4.dylib(single module)
:info:build collect2: ld returned 1 exit status
:info:build make[3]: *** [cc1] Error 1
:info:build /usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: warning suggest use of -bind_at_load, as lazy binding may result in errors or different symbols being used
:info:build /usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: Undefined symbols:
:info:build typeinfo for std::logic_error
:info:build typeinfo for std::runtime_error
:info:build typeinfo for std::basic_streambuf<char, std::char_traits<char> >
:info:build typeinfo for std::bad_alloc
:info:build typeinfo for std::exception
:info:build typeinfo for int
:info:build VTT for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >
:info:build vtable for std::basic_istream<char, std::char_traits<char> >
:info:build vtable for std::basic_ostream<char, std::char_traits<char> >
:info:build vtable for std::basic_streambuf<char, std::char_traits<char> >
:info:build vtable for std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >
:info:build vtable for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >
:info:build vtable for std::basic_ios<char, std::char_traits<char> >
:info:build operator delete(void*)
:info:build operator new(unsigned long)
:info:build operator delete[](void*)
:info:build operator new[](unsigned long)
:info:build symbol ___gmpz_neg used from dynamic library /cluster/plaw/regenv/lib/libgmp.dylib(single module) not from earlier dynamic library /cluster/plaw/regenv/lib/libppl_c.4.dylib(single module)
:info:build collect2: ld returned 1 exit status
:info:build make[3]: *** [cc1plus] Error 1
:info:build make[2]: *** [all-stage1-gcc] Error 2
:info:build make[2]: Leaving directory `/Volumes/cluster/plaw/regenv/var/macports/build/_cluster_plaw_regenv_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc47/libstdcxx/work/build'
:info:build make[1]: *** [stage1-bubble] Error 2
:info:build make[1]: Leaving directory `/Volumes/cluster/plaw/regenv/var/macports/build/_cluster_plaw_regenv_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc47/libstdcxx/work/build'
:info:build make: *** [bootstrap] Error 2
:info:build make: Leaving directory `/Volumes/cluster/plaw/regenv/var/macports/build/_cluster_plaw_regenv_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc47/libstdcxx/work/build'
:info:build Command failed: cd "/cluster/plaw/regenv/var/macports/build/_cluster_plaw_regenv_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc47/libstdcxx/work/build" && /usr/bin/make -j4 -w bootstrap
:info:build Exit code: 2
:error:build org.macports.build for port libstdcxx returned: command execution failed
:debug:build Error code: CHILDSTATUS 864 2
:debug:build Backtrace: command execution failed
while executing
"system -nice 0 $fullcmdstring"
("eval" body line 1)
invoked from within
"eval system $notty $nice \$fullcmdstring"
invoked from within
"command_exec build"
(procedure "portbuild::build_main" line 8)
invoked from within
"$procedure $targetname"
:info:build Warning: targets not executed for libstdcxx: org.macports.activate org.macports.build org.macports.destroot org.macports.install