【问题标题】:What are these GCC/G++ parameters?这些 GCC/G++ 参数是什么?
【发布时间】:2009-10-03 01:00:55
【问题描述】:

我一直在使用 UVa Online Judge 来解决一些编程挑战,并且在提交我的解决方案时,我被告知法官将使用以下我不知道的 GCC/G++ 参数编译我的代码: -lm -lcrypt -pipe -DONLINE_JUDGE.

他们是做什么的?非常感谢您!

【问题讨论】:

  • Ashwin,lm 参数与pipe 的类型不同,这一点并不明显。后者是一个单词,而前者实际上是l 后跟库的缩写名称。此外,在这四个中,pipe 是唯一实际出现在gcc --help 输出中的一个。其余的需要-v,即使在筛选了提供给您的多页输出后,您仍然找不到任何提及lmlcrypt 的内容。
  • @Rob:但是你会发现类似 -l<...> 的东西(不知道确切的文档)。所以你可以看到它是 -l 后面跟着一些东西。 (与 -D<...> 相同)。

标签: c++ c gcc parameters g++


【解决方案1】:

"-lm -lcrypt" 指定链接到数学和密码库 - 如果您要使用 math.h 和 crypt.h 中定义的函数,这很有用。 “-pipe”只是意味着它不会创建中间文件,而是使用管道。 "-DONLINE_JUDGE" 定义了一个名为“ONLINE_JUDGE”的宏,就像您在代码中添加了一个“#define”一样。我想这是为了让您可以在代码中的“#ifdef”/“#endif”块中添加一些特定于判断的内容。

【讨论】:

  • “包含数学和密码库”应该是“链接到数学和密码库”。
  • 为了完整起见:-l<...> 链接库“lib<...>.so*”。所以 -lm 链接“libm.so*”,-lcrypt 链接“libcrypt.so*”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-13
  • 1970-01-01
  • 2011-07-07
相关资源
最近更新 更多