0

我正在尝试构建 gcc 4.8.2 的可移植版本。(仅适用于 C/C++ 语言)最终结果是将 gcc 安装到特定的应用程序目录中,例如 /opt/gcc-4.8.2,以便我可以将该目录从一台计算机复制到另一台计算机(所有计算机都是英特尔 corei5或 corei7,运行最新的 Linux 版本,例如 Ubuntu 12、Suse 10/11、Centos 5 和 6)。

到目前为止,我能够构建 gcc ok,使用 --prefix 将 gcc 输出放置在单个目录中(然后可以将其复制到其他主机)。我将 gcc 的依赖项(gmp、mpfr、mpc、isl)配置和构建为具有 --disable-shared,因此我可以确定最终的 gcc 在复制到其他主机时不会抱怨缺少库或符号。

我有一个关于cloog的问题。我使用 --with-cloog 配置了 gcc(以获取我本地构建的 cloog,它是与其他 gcc 依赖项一起构建的)。但是,我不知道的是,我是否还需要将 clog 库和二进制文件复制到我将 gcc 复制到的每个主机?

另外,我如何测试 gcc 和 clog 交互?是否有一个简单的 C 文件示例和/或 gcc 命令行可用于测试 gcc 是否成功使用 cloog?

此外,在尝试构建我想在其他主机上运行的 gcc 时,是否还有其他注意事项?

4

1 回答 1

3

这取决于cloog是作为共享库libcloog-isl.so.*还是静态库安装的libcloog.a;采用

ldd $(gcc-4.8 -print-file-name=cc1)

找出答案。当然,您需要安装所有共享库依赖项。如果libcloog*so出现在上述ldd命令的输出中,则它是一个共享库。否则是静态的。

您可以设置LD_LIBRARY_PATH, 或将包含libcloog-isl.so.*(例如/usr/local/lib//opt/lib/等...)的目录添加到/etc/ld.so.conf(然后运行ldconfig

我不完全确定您的gcc构建可以在您提到的每个平台上运行。可能存在libc*依赖关系。看到这个。也许还有binutils依赖项(尤其是gcc-4.8 -flto编译)。

测试只是用优化gcc编译(例如)一些非平凡的文件。gcc-4.8 -Wall -O3

于 2013-12-28T08:26:27.930 回答