C ++ ld:找不到架构x86_64 macbook maverick

时间:2018-04-06 05:07:48

标签: c++ g++

我正在使用macbook maverick,我试图从这个网站编译解析器: http://www.cril.univ-artois.fr/PB16/coding.html

我正在尝试编译http://www.cril.univ-artois.fr/PB16/parser/SimpleParser.cc

我跑了

g++ -g -DuseGMP -o testCC SimpleParser.cc -lgmpxx -lgmp

这来自该网站上的makefile,但它既不起作用也不起作用。 我得到错误:

Undefined symbols for architecture x86_64:
  "operator<<(std::basic_ostream<char, std::char_traits<char> >&, __mpz_struct const*)", referenced from:
      std::basic_ostream<char, std::char_traits<char> >& operator<< <__mpz_struct [1], __mpz_struct [1]>(std::basic_ostream<char, std::char_traits<char> >&, __gmp_expr<__mpz_struct [1], __mpz_struct [1]> const&) in ccuZ3ElV.o
  "operator>>(std::basic_istream<char, std::char_traits<char> >&, __mpz_struct*)", referenced from:
      std::basic_istream<char, std::char_traits<char> >& operator>><__mpz_struct [1]>(std::basic_istream<char, std::char_traits<char> >&, __gmp_expr<__mpz_struct [1], __mpz_struct [1]>&) in ccuZ3ElV.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

我该如何解决这个问题?我看到有关此错误的其他问题,但大多数情况下还有另一个需要一起编译的文件。但在这种情况下,只有一个文件,即我的案例中的SimpleParser.cc。提前谢谢。

1 个答案:

答案 0 :(得分:0)

在搜索GMP之后,例如在C++ gmp and homebrew

之后的许多尝试, 我尝试了以下命令:

clang++ -L /opt/local/lib -I /opt/local/include -g -DuseGMP -lgmpxx -lgmp SimpleParser.cc -o testCC

它似乎有效。