【问题标题】:bcc32 compiler and tlink32 linker options equivalent in linux for gcc and ld respectivelybcc32 编译器和 tlink32 链接器选项在 linux 中分别等效于 gcc 和 ld
【发布时间】:2021-07-26 23:19:00
【问题描述】:

我正在尝试将旧版 Delphi 代码从 Windows 转换为 Linux。 Delphi 项目有一些子模块,它们是用 C 语言编写的,使用 bcc32 编译器编译并使用 tlink32 链接器链接。

作为这些 C 模块的 Linux 转换的一部分,我计划使用 gcc 编译器代替 bcc32,并使用 ld 链接器代替 tlink32。

但是,我发现在 Linux 中找到等效的编译器和链接器标志/选项有点困难。下面是来自 Windows 中现有 C 代码的编译器 (bcc32) 和链接器 (tlink32) 命令。如果有人可以建议 Linux 中 gcc 和 ld 的等效标志,那将是一个很大的帮助。

bcc32 编译器选项:

c:\bc45\bin\bcc32 -a1 -c -d -I..\..\_common\msgups -v- -w-aus -w-par -i50 -Dfar -DNO_SEGMENT_PRAGMA $(.SOURCE)

在这里我找不到与-a1-d-v--w-aus-i50-Dfar-DNO_SEGMENT_PRAGMA 对应的 gcc 编译器标志

tlink32 链接器选项:

c:\bc45\bin\tlink32 -s -n $(OBJ) $(.SOURCE), $@, $*.mup

这里找不到-s-n对应的ld编译器标志

【问题讨论】:

  • 请删除标签 Delphi。你的问题真的是关于 C 的。
  • 请扩展您的问题(editing)并告诉我们每个选项的含义。我们不打算寻找 Delphi 的手册,阅读它,对 GCC 做同样的事情,然后比较两者。这是你的任务。如果你碰巧找到一个你不知道如何解释或映射到 GCC 选项的选项,请列出来。
  • 这看起来与stackoverflow.com/questions/67379864/… 非常相似。这个问题已经结束——提问者没有做任何研究。你做了什么研究?您是否查看了bcc32 文档以了解这些标志的作用?我知道 gcc - 但我不知道 bcc32。这些选项有什么作用?

标签: c++ linux gcc c++builder


【解决方案1】:

bcc32 标志

基于:Using the Borland 5.5 Compiler and command-line toolsBCC32.EXE, the C++ 32-bit Command-Line CompilerCompiler Errors And Warnings (C++) Index

  • -aN = N 字节对齐
    • 因此,-a1 是 1 字节对齐
  • -c = 仅编译,无链接
  • -d = 合并重复字符串
  • -I = 包含文件目录
    • 因此,-I..\..\_common\msgups 指向 ..\..\_common\msgups 文件夹
  • -v = 源代码级调试
    • 因此,-v- 禁用调试
  • -wxxx = 警告控制
    • 因此:
      • -w-aus 抑制 warning #8004(“标识符”被分配了一个从未使用过的值)
      • -w-par 抑制 warning #8057(从未使用参数“参数”)
  • -iN = 最大标识符长度
    • 因此,-i50 的最大标识符长度为 50
  • -Dxxx = 定义宏
    • 因此:
    • -Dfar 定义 far
    • -DNO_SEGMENT_PRAGMA 定义 NO_SEGMENT_PRAGMA

tlink32 标志

基于:Command-Line Options of LINK.EXE and TLINK32.EXE

  • -s = 在 MAP 文件中包含有关分段的详细信息。
  • -n = 没有默认库

【讨论】:

  • 感谢 bcc32 编译器的链接。实际上我找不到 bcc32 的好文档。你的回答对我帮助很大。我有 gcc 的文档,现在我可以更轻松地搜索 gcc 文档以找到等效的文档。
猜你喜欢
  • 2010-12-05
  • 2012-01-16
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
  • 2019-07-30
  • 1970-01-01
  • 2019-01-30
  • 2021-10-12
相关资源
最近更新 更多