gpt4 book ai didi

macos - 为什么 GCC 在 Ubuntu 10 中看起来更冗长?

转载 作者:太空宇宙 更新时间:2023-11-03 17:02:55 24 4
gpt4 key购买 nike

我最近做了一个 cp 克隆(用于大学),我碰巧发现了一些我从未有机会发现的东西。

这至少适用于编译 C 源代码的 GCC。

我在 Mac OS X (10.6.4) 中完成了这个特定 C 程序的主要开发,使用 Apple 的 /usr/bin/gcc --version

构建
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
Copyright (C) 2007 Free Software Foundation, Inc.

但是,我在 Mac 中的 Arch Linux 虚拟机中使用最新的 gcc(没有添加,没有定制,没有像 Apple 那样的模组)运行测试

gcc (GCC) 4.5.1
Copyright (C) 2010 Free Software Foundation, Inc.

我们必须在现有的 Ubuntu 10.04.1 LTS 中的类中构建它。

我的 Makefile 是这样的:

CC=gcc
#CFLAGS=-O0 -g -Wall
CFLAGS=-O3 -Wall -finline-functions
EXE=copy

compile:
$(CC) $(CFLAGS) -o $(EXE) main.c

因此,我一直(在每个操作系统中)运行启用了 -Wall 的 gcc。Mac 和 Arch 从未显示任何警告。

Ubuntu 打印了两个警告,有和没有 -Wall

do_copy.c: In function 'do_copy_file2file':
do_copy.c:27: warning: ignoring return value of 'realpath', declared with attribute warn_unused_result
do_copy.c: In function 'do_copy_symlink2file':
do_copy.c:117: warning: ignoring return value of 'symlink', declared with attribute warn_unused_result

Ubuntu 的 GCC 版本是发行版的默认版本:gcc (Ubuntu 4.4.3-ubuntu5) 4.4.3

为什么会这样?

为什么我在其他两个操作系统中没有看到任何警告,而在 Ubuntu 中却看到了?

最佳答案

Ubuntu 强制执行一些 CFLAGS,如您所见 here

关于macos - 为什么 GCC 在 Ubuntu 10 中看起来更冗长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4224855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com