OS X 10.10.2 与“__mpf_struct”相关的未定义符号错误

2024-03-07

我正在尝试编译一个程序

https://github.com/davidsd/sdpb https://github.com/davidsd/sdpb

在 OS X 10.10.2 上使用 gcc-4.9、boost 1.57.0、gmp-6.0.0a 和 mpfr-3.1.2,但我不断收到似乎与 gmp 和 mpfr 软件包相关的错误。我认识一个在 10.9.5 上成功编译的人。有人可以建议修复吗?


体系结构 x86_64 的未定义符号: “operator&, __mpf_struct const*)”,引用自:

  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
  ...

“operator>>(std::basic_istream >&, __mpf_struct*)”,引用自:

  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:未找到架构 x86_64 的符号 collect2:错误:ld 返回 1 退出状态 make: *** [sdpb] 错误 1


在我的(linux)系统上,链接器命令行最终是

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

看来顺序是错误的。图书馆应该follow目标文件

当我将其修复为

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 

它在我的系统上链接没有错误

所以在Makefile中,将链接命令更改为

$(RESULT): $(OBJECTS)
    $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OS X 10.10.2 与“__mpf_struct”相关的未定义符号错误 的相关文章

随机推荐

  • awk:按“\n”分割

    我正在尝试处理一个日志文件 其中条目被压缩为一行 换行符编码为 n 我想将所有内容保留到第一个 n 并丢弃其余部分 awk F n print 1 file不起作用 也不起作用awk F n print 1 file 该命令的正确形式是什么
  • dbpedia 提取 JSON

    http dbpedia org resource Los Angeles http dbpedia org resource Los Angeles您可以通过在 HTTP 请求中使用适当的标头以编程方式以多种格式请求此数据 例如 Acce
  • 使用 mod_rewrite 我可以在 RewriteCond 中指定 RewriteBase 吗?

    我想让我的 htaccess 文件指定不同的 RewriteBase 具体取决于 htaccess 文件是在我的本地计算机上还是在 Web 服务器上 这是我尝试过的 mod rewrite 代码 但是它不起作用 RewriteCond HT
  • 如何跨 UNION 重复 SQL 查询的部分? (SQL 中的 DRY)

    我有一个查询返回三个 UNION 查询的结果 每个查询都有一个冗长的 select 语句 select 语句的某些部分如下所示 coalesce a fact1 Fact1 coalesce b fact1 Fact2 from join
  • Angular.js 与 Elm 相比有何优缺点?

    我正在考虑在浏览器中进行一些反应式编程并比较 angular js http angularjs org http angularjs org 与榆树 http elm lang org http elm lang org 各自的相对好处
  • 如何隐藏/不绘制具有 0/null/未定义值的条形?

    如何隐藏错误的值 0 空或未定义 我尝试过做类似的事情 new Chart this barCanvas nativeElement data datasets data value lt 1 null value value2 lt 1
  • 如何为 bar_label 设置科学记数法标签格式

    我正在 seaborn 条形图中绘制数据 我想将 pandas 数据框中的某些内容标记到栏中 我已经弄清楚了标签部分 请参阅下面要复制的代码 但我仍然想将其转换为科学计数法 import pandas as pd d name experi
  • 有什么办法可以让kafka流暂停一段时间然后再恢复吗?

    我们有一个要求 即使用 Kafka Streams 从 Kafka 主题读取数据 然后通过会话池通过网络发送数据 然而 有时 网络调用有点慢 我们需要经常暂停流 以确保网络不会过载 目前 我们将数据捕获到流中并将其加载到执行器服务 然后通过
  • 结构初始化和默认参数的不直观行为

    public struct Test public double Val public Test double val double NaN Val val public bool IsValid get return double IsN
  • 与 Webpack 捆绑时下划线出错

    我正在尝试重写使用 require js 的旧应用程序以使用 es6 导入 使用的库之一是 Backbone 和 Underscore 为了创建一个大包并将 es6 预编译为 es5 我使用 Webpack 和 babel loader 捆
  • 如何为主键列创建自定义自动生成的 ID 号?

    我创建了此表并插入了以下值 CREATE TABLE Product ID INTEGER IDENTITY 1 1 NOT NULL PRIMARY KEY CLUSTERED Product No AS RIGHT PDT0000 CA
  • EST 与 America/New_York 时区之间的差异

    有人可以告诉我 以下两个陈述有什么区别 TimeZone getTimeZone America New York and TimeZone getTimeZone EST 换句话说 为什么 EST 与 America New York 不
  • 使用 graph api 获取用户所属的所有租户

    我有一个应用程序 它使用 AUTH v2 身份验证提供程序和公共租户 login microsoftonline com common v2 0 进行身份验证 现在 由于我的用户可以属于任何 AAD 租户 并且我希望我的用户能够选择他们正在
  • 在 UNIX 中比较两个文件

    我想比较两个文件 未排序 文件 1 和文件 2 我想执行 file2 file1 差异 而不管行号如何 差异不工作 我通过使用 comm 得到了解决方案 comm 23 file1 file2 会给你想要的输出 无论如何 首先需要对文件进行
  • Javascript将对象推送到全局数组会覆盖以前的值吗?

    我在 Javascript 中遇到这个问题 我想从对象数组中获取经度和纬度值 这一切都工作正常 但是当我尝试将其保存到全局数组中时 它会覆盖以前的每个值 结果是一个数组 其中包含最后推送的对象的 8 倍 全局数组 var coordinat
  • IIS Express (WebMatrix) 对外部连接开放

    我已经在端口 80 和 2012 上启用了 IIS Express HTTP 流量输入 和 IIS Express HTTPS 流量输入 的防火墙规则 此端口用于 WebMatrix 但我无法从 LAN 连接到服务器 WebMatrix 在
  • 如何在 weblogic 10.3 上的 MDB 中设置最大池大小

    我需要在 weblogic 10 3 上的 MDB 上设置最大池大小 我直接在MDB上插入这个注解 ActivationConfigProperty propertyName MaxPoolSize propertyValue 1 但它似乎
  • 使用 cronjob 运行 php 文件中的函数

    我的 php 文件 file1 php 中有一个函数 我正在尝试使用 cronjob 来调用此函数 我的 cron 作业命令是 php home name public html file1 php mail1 作为参考 函数代码如下 当直
  • 是否可以根据标准输入 git-diff 文件?

    假设我正在编辑一个文件 如果我保存文件 git diff会给我它相对于索引的变化 我想在不先保存文件的情况下获取相对于索引的更改 以获得 实时 差异 一种解决方案是将未保存的更改写入临时文件 即将文件保存在其他地方 将暂存文件写入另一个临时
  • OS X 10.10.2 与“__mpf_struct”相关的未定义符号错误

    我正在尝试编译一个程序 https github com davidsd sdpb https github com davidsd sdpb 在 OS X 10 10 2 上使用 gcc 4 9 boost 1 57 0 gmp 6 0