c++ - GMP、MPC、MPFR的库文件和头文件是分开的,如何安装GCC?

标签 c++ macos gcc compiler-construction

我认为这是我安装 GCC 的问题。我不断得到

checking for the correct version of gmp.h... yes
checking for the correct version of mpfr.h... yes
checking for the correct version of mpc.h... yes
checking for the correct version of the gmp/mpfr/mpc libraries... no

当我打字时

/Users/[username]/Documents/gcc-4.8.3/configure --with-gmp=/usr/local
--with-mpc=/usr/local --with-mpfr=/usr/local

[用户名] 是我的实际用户名。

我安装了 GMP、MPC 和 MPFR,但这三者的文件分布在/usr/local 中的不同文件夹中。所有头文件都在/usr/local/include 中,但库文件在/usr/local/lib 中。

最佳答案

你应该能从这里弄明白:

$ ~/src/gcc/gcc/configure --help | fgrep gmp
  --with-gmp-dir=PATH     this option has been REMOVED
  --with-gmp=PATH         specify prefix directory for the installed GMP
                          --with-gmp-include=PATH/include plus
                          --with-gmp-lib=PATH/lib
  --with-gmp-include=PATH specify directory for installed GMP include files
  --with-gmp-lib=PATH     specify directory for the installed GMP library

此外,https://gcc.gnu.org/install/prerequisites.html

Alternatively, if GMP is already installed but it is not in your library search path, you will have to configure with the --with-gmp configure option. See also --with-gmp-lib and --with-gmp-include.

当然,https://gcc.gnu.org/install/configure.html

--with-gmp=pathname
--with-gmp-include=pathname
--with-gmp-lib=pathname
--with-mpfr=pathname
--with-mpfr-include=pathname
--with-mpfr-lib=pathname
--with-mpc=pathname
--with-mpc-include=pathname
--with-mpc-lib=pathname
If you want to build GCC but do not have the GMP library, the MPFR library and/or the MPC library installed in a standard location and do not have their sources present in the GCC source tree then you can explicitly specify the directory where they are installed (‘--with-gmp=gmpinstalldir’, ‘--with-mpfr=mpfrinstalldir’, ‘--with-mpc=mpcinstalldir’). The --with-gmp=gmpinstalldir option is shorthand for --with-gmp-lib=gmpinstalldir/lib and --with-gmp-include=gmpinstalldir/include. Likewise the --with-mpfr=mpfrinstalldir option is shorthand for --with-mpfr-lib=mpfrinstalldir/lib and --with-mpfr-include=mpfrinstalldir/include, also the --with-mpc=mpcinstalldir option is shorthand for --with-mpc-lib=mpcinstalldir/lib and --with-mpc-include=mpcinstalldir/include. If these shorthand assumptions are not correct, you can use the explicit include and lib options directly. You might also need to ensure the shared libraries can be found by the dynamic linker when building and using GCC, for example by setting the runtime shared library path variable (LD_LIBRARY_PATH on GNU/Linux and Solaris systems).

这应该很明显地表明,文件不会全部位于一个目录中是完全正常的,甚至是意料之中的。几乎所有 UNIX 软件都将头文件和库安装在单独的目录中。

在树中构建这些库并将 GCC 静态链接到它们通常更容易,如 http://gcc.gnu.org/wiki/InstallingGCC 中所述

关于c++ - GMP、MPC、MPFR的库文件和头文件是分开的,如何安装GCC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23985368/

相关文章:

c++ - 如果我在库和应用程序中编译了相同的 cpp 文件会怎样?

c++ - 在 C++23 中显式 *this 对象参数提供什么?

java - HFS+ 上的 AclFileAttributeView

c++ - 用于 Mac OS X Lion 的 GUI 编程 C++

python - 在 OSX 上使用 python select kqueue 来监视外部应用程序的文件创建

c - 函数中的段错误

c++ - 带有引用的自动关键字行为

c++ - 访问冲突 0xFEEEFEEE 无法访问组件

c++ - 为什么 Visual Studio 会在这里调用析构函数,而 GCC 不会?

linux - 无法禁用 gcc 警告 - 从整数创建指针而不进行强制转换