【问题标题】:How to deploy a portable gcc with cloog?如何使用 cloog 部署便携式 gcc?
【发布时间】:2013-12-28 08:22:38
【问题描述】:

我正在尝试构建 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 时,我还想在其他主机上运行它时是否还有其他注意事项?

【问题讨论】:

    标签: linux gcc mpfr


    【解决方案1】:

    这取决于 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* 依赖项。见this。也许还有binutils 依赖项(尤其是gcc-4.8 -flto 编译)。

    要测试gcc,只需编译优化(例如gcc-4.8 -Wall -O3)一些重要的文件。

    【讨论】:

    • “我不完全确定你的 gcc 构建可以在你提到的每个平台上运行。可能存在 libc* 依赖项。” ..是的,我也想知道这个。我希望通过在我们系统中最旧的操作系统(例如 Suse 10)上构建 gcc 来避免这个问题。
    猜你喜欢
    • 2014-10-09
    • 1970-01-01
    • 2010-12-22
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多