2013-01-17 74 views
0

我正在尝试使用macports安装libstdcxx,并且我不断遇到错误,但我不确定是什么原因导致它们。使用macports安装libstdcxx时出错

我正在运行Mac OS X Server 10.4.11的计算机上工作。我不确定Xcode的安装版本是什么,但是我确定了组件版本是DevToolsCore-798.0和DevToolsSupport-794.0。我也在使用在virtualenv中运行的macports(配置了prefix=/cluster/plaw/regenv/的macports)。我已经在virtualenv中使用过macports,没有任何问题。

我发现here由于ld64问题,libstdcxx有时会出现问题。我遵循了大多数建议的解决方案(重新安装ld64,使用ld64 + llvm31,以不同的顺序安装等),但无济于事。 我还发现了一个类似的问题here,但票证未解决。

所以,我想知道这是否只是旧操作系统的问题,并且我无能为力(系统管理员不愿意更新)。以下是安装日志的一部分,如果有人能够发现可能导致问题的原因。

这是我已经安装了端口(如果有差别)从安装日志

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 

回答

0

貌似gmpppl之间的冲突,除非你需要石墨优化(你可能不这样做),除非Macports坚持启用它们,否则你可以尝试去除ppl包并重新安装。