以及相关未定义符号错误QUOT; __ mpf_struct"对于OS X 10.10.2 [英] Undefined symbols error related to "__mpf_struct" for OS X 10.10.2

查看:158
本文介绍了以及相关未定义符号错误QUOT; __ mpf_struct"对于OS X 10.10.2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从编译

https://github.com/davidsd/sdpb

用gcc-4.9,升压1.57.0,GMP-6.0.0a和MPFR-3.1.2 OS X 10.10.2,但我一直貌似相关的GMP和MPFR包收到错误信息。我知道有人谁在10.9.5成功编译。任何人都可以提出一个解决?

with gcc-4.9, boost 1.57.0, gmp-6.0.0a, and mpfr-3.1.2 on OS X 10.10.2, but I keep getting errors seemingly related to the gmp and mpfr packages. I know somebody who successfully compiled on 10.9.5. Can anybody suggest a fix?

未定义建筑x86_64的符号:
  运营商的LT;≤(的std :: basic_ostream>&放;, __mpf_struct常量*),从引用的:

Undefined symbols for architecture x86_64: "operator<<(std::basic_ostream >&, __mpf_struct const*)", referenced from:

  operator<<(std::basic_ostream<char, std::char_traits<char> >&, Matrix const&) in Matrix.o
  operator<<(std::basic_ostream<char, std::char_traits<char> >&, SDPSolverParameters const&) in SDPSolverIO.o
  SDPSolver::saveSolution(SDPSolverTerminateReason, boost::filesystem::path const&)  in SDPSolverIO.o
  std::basic_ostream<char, std::char_traits<char> >& operator<< <__gmp_expr<__mpf_struct [1], __mpf_struct [1]> >(std::basic_ostream<char, std::char_traits<char> >&, std::vector<__gmp_expr<__mpf_struct [1], __mpf_struct [1]>, std::allocator<__gmp_expr<__mpf_struct [1], __mpf_struct [1]> > > const&) in SDPSolverIO.o
  void boost::serialization::save<boost::archive::text_oarchive>(boost::archive::text_oarchive&, __gmp_expr<__mpf_struct [1], __mpf_struct [1]> const&, unsigned int) in SDPSolverIO.o
  solveSDP(boost::filesystem::path const&, boost::filesystem::path const&, boost::filesystem::path const&, SDPSolverParameters) in main.o
  boost::detail::lexical_converter_impl<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, __gmp_expr<__mpf_struct [1], __mpf_struct [1]> >::try_convert(__gmp_expr<__mpf_struct [1], __mpf_struct [1]> const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) in main.o
  ...

操作符>>(的std :: basic_istream>&放;, __mpf_struct *),从引用的:

"operator>>(std::basic_istream >&, __mpf_struct*)", referenced from:

  void boost::program_options::validate<__gmp_expr<__mpf_struct [1], __mpf_struct [1]>, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, __gmp_expr<__mpf_struct [1], __mpf_struct [1]>*, long) in main.o

LD:符号(S)未找到x86_64的架构
collect2:错误:LD返回1退出状态
使:*** [SDPB]错误1

ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status make: *** [sdpb] Error 1

推荐答案

在我的(Linux)的系统链接器命令行最终被

On my (linux) system the linker command line ends up being

g++ -g -O2 -Wall -ansi -L/home/dsd/lib -Isrc/mpack -I/home/dsd/include -I/home/dsd/include/boost -fopenmp -D___MPACK_BUILD_WITH_GMP___ -MMD -lgomp -lgmp -lgmpxx -lboost_serialization -lboost_system -lboost_filesystem -lboost_timer -lboost_program_options -o sdpb obj/BlockDiagonalMatrix.o obj/main.o obj/Matrix.o obj/parse.o obj/SDP.o obj/SDPSolver.o obj/SDPSolverIO.o obj/mpack/iMlaenv.o obj/mpack/iRamax.o obj/mpack/Mlsame.o obj/mpack/Mxerbla.o obj/mpack/Raxpy.o obj/mpack/Rcopy.o obj/mpack/Rdot.o obj/mpack/Rgemm.o obj/mpack/RgemmParallel.o obj/mpack/Rgemv.o obj/mpack/Rger.o obj/mpack/Rgetf2.o obj/mpack/Rgetrf.o obj/mpack/Rgetrs.o obj/mpack/Rlae2.o obj/mpack/Rlaev2.o obj/mpack/Rlamch.o obj/mpack/Rlanst.o obj/mpack/Rlansy.o obj/mpack/Rlapy2.o obj/mpack/Rlarfb.o obj/mpack/Rlarf.o obj/mpack/Rlarfg.o obj/mpack/Rlarft.o obj/mpack/Rlartg.o obj/mpack/Rlascl.o obj/mpack/Rlaset.o obj/mpack/Rlasr.o obj/mpack/Rlasrt.o obj/mpack/Rlassq.o obj/mpack/Rlaswp.o obj/mpack/Rlatrd.o obj/mpack/Rnrm2.o obj/mpack/Rorg2l.o obj/mpack/Rorg2r.o obj/mpack/Rorgql.o obj/mpack/Rorgqr.o obj/mpack/Rorgtr.o obj/mpack/Rpotf2.o obj/mpack/Rpotf2Stabilized.o obj/mpack/Rpotrf.o obj/mpack/RpotrfStabilized.o obj/mpack/Rrot.o obj/mpack/Rrotg.o obj/mpack/Rscal.o obj/mpack/Rsteqr.o obj/mpack/Rsterf.o obj/mpack/Rswap.o obj/mpack/Rsyev.o obj/mpack/Rsymv.o obj/mpack/Rsyr2.o obj/mpack/Rsyr2k.o obj/mpack/Rsyrk.o obj/mpack/Rsytd2.o obj/mpack/Rsytrd.o obj/mpack/Rtrmm.o obj/mpack/Rtrmv.o obj/mpack/Rtrsm.o obj/mpack/Rtrsv.o obj/tinyxml2/tinyxml2.o

貌似顺序是错误的。图书馆应的跟踪的对象文件

当我将它固定在

g++ -g -O2 -Wall -ansi -L/home/dsd/lib -Isrc/mpack -I/home/dsd/include -I/home/dsd/include/boost -fopenmp -D___MPACK_BUILD_WITH_GMP___ -MMD obj/BlockDiagonalMatrix.o obj/main.o obj/Matrix.o obj/parse.o obj/SDP.o obj/SDPSolver.o obj/SDPSolverIO.o obj/mpack/iMlaenv.o obj/mpack/iRamax.o obj/mpack/Mlsame.o obj/mpack/Mxerbla.o obj/mpack/Raxpy.o obj/mpack/Rcopy.o obj/mpack/Rdot.o obj/mpack/Rgemm.o obj/mpack/RgemmParallel.o obj/mpack/Rgemv.o obj/mpack/Rger.o obj/mpack/Rgetf2.o obj/mpack/Rgetrf.o obj/mpack/Rgetrs.o obj/mpack/Rlae2.o obj/mpack/Rlaev2.o obj/mpack/Rlamch.o obj/mpack/Rlanst.o obj/mpack/Rlansy.o obj/mpack/Rlapy2.o obj/mpack/Rlarfb.o obj/mpack/Rlarf.o obj/mpack/Rlarfg.o obj/mpack/Rlarft.o obj/mpack/Rlartg.o obj/mpack/Rlascl.o obj/mpack/Rlaset.o obj/mpack/Rlasr.o obj/mpack/Rlasrt.o obj/mpack/Rlassq.o obj/mpack/Rlaswp.o obj/mpack/Rlatrd.o obj/mpack/Rnrm2.o obj/mpack/Rorg2l.o obj/mpack/Rorg2r.o obj/mpack/Rorgql.o obj/mpack/Rorgqr.o obj/mpack/Rorgtr.o obj/mpack/Rpotf2.o obj/mpack/Rpotf2Stabilized.o obj/mpack/Rpotrf.o obj/mpack/RpotrfStabilized.o obj/mpack/Rrot.o obj/mpack/Rrotg.o obj/mpack/Rscal.o obj/mpack/Rsteqr.o obj/mpack/Rsterf.o obj/mpack/Rswap.o obj/mpack/Rsyev.o obj/mpack/Rsymv.o obj/mpack/Rsyr2.o obj/mpack/Rsyr2k.o obj/mpack/Rsyrk.o obj/mpack/Rsytd2.o obj/mpack/Rsytrd.o obj/mpack/Rtrmm.o obj/mpack/Rtrmv.o obj/mpack/Rtrsm.o obj/mpack/Rtrsv.o obj/tinyxml2/tinyxml2.o -lgomp -lgmp -lgmpxx -lboost_serialization -lboost_system -lboost_filesystem -lboost_timer -lboost_program_options -o sdpb 

这没有错误链接我的系统上

It linked without error on my system

因此​​,在Makefile文件,链接命令改为

So in the Makefile, change the link command to

$(RESULT): $(OBJECTS)
    $(CC) $(CFLAGS) -o $@ $^ $(LIBS)

这篇关于以及相关未定义符号错误QUOT; __ mpf_struct&QUOT;对于OS X 10.10.2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆