【问题标题】:GNU make with xlc compilerGNU make 与 xlc 编译器
【发布时间】:2011-12-24 05:03:31
【问题描述】:

希望在这里有所了解。我有我们的一个项目的源代码,没有关于如何编译的文档,所有编写它的人都离开了:) 我们有一个问题,幸运的 moi 已受命调查。

目前我正在尝试在 AIX 上构建,makefile 一直在抱怨

make: 1254-055 Dependency line needs colon or double colon operator.

make: 1254-057 Shell command needs a leading tab.

CPP选项好像是xlc选项,软件之前编译过很多次。 makefile 包含来自 windows 的控制字符,并且确实有针对某些条目但不是所有 shell 命令的选项卡。

对在代码上运行 make 可能出现什么问题有任何想法吗?我还没有安装 GNU make,这能解决问题吗?

【问题讨论】:

  • Makefile 是否有 CR-LF 行尾标记? CR 可能会让挑剔的 make 感到困惑。
  • 没有“gcc make”之类的东西。 “gcc”是 GNU 编译器集合,其中包括 GNU C 编译器。 “make”是一个构建工具; GNU make 是众多实现之一。
  • 感谢大家的回复.. mu - 即使它是为 AIX 设计的,makefile 中似乎确实包含 cr/lf .. Keith - 应该更清楚,我的意思是 gmake 而不是make,据我所知,gmake 是 GN 编译器集合使用的 make 的实现。这些文件在过去已经工作了好几次,所以很可能是我正在做/不做的事情导致了问题。
  • 一个人将 makefile 复制到 Windows 机器并将其保存在那里可以解释所有这些。如果它以前有效,并且您没有进行任何需要 gmake 功能的更改,为什么不弄清楚发生了什么变化?你有一个版本控制的副本从它工作时回来吗?与电流不同。 CR-LF 几乎可以肯定是一个问题,并且您必须有 shell 命令的前导选项卡。祝你好运。
  • make 仅是 PASE,而不是 ILEgmakeILE,更好。

标签: makefile gnu-make aix xlc


【解决方案1】:

C++ 来源,在我的公司:

  • 在 AIX 上,我们使用 make(和 xlC_r 编译器)。
  • 在 AS400 上,我们使用 gmake(和 ixlc 编译器)。因为make 存在,但只是PASE

gmake 肯定是在某个旧网站上找到的……我们的 iSeries 上还有许多其他 GNU 程序。我在PGM 旁边没有发现任何痕迹。

【讨论】:

    【解决方案2】:

    Classic SysV make 在格式化方面比 gnumake 更挑剔,更不用说功能集受到更多限制。我什至不再费心编写“经典”兼容的 Makefile 了——太痛苦了。

    即使我们在 AIX 上使用本机编译器 (xlc),我们仍然使用 gmake 作为我们的依赖项/构建工具。

    我建议安装 gmake 的托管副本,可从多个来源下载:

    祝你好运!

    【讨论】:

      【解决方案3】:

      我认为即使在 AIX 上您也可能需要使用 gmake。原始品牌可能无法按预期工作。 Windows 控制字符可能重要也可能不重要(通常不重要),但可以在 vi 上编辑掉。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-15
        • 1970-01-01
        相关资源
        最近更新 更多