linux - GCC 在 Mac OS X 上编译程序,但在 Ubuntu 上不编译程序

标签 linux macos gcc compilation clang

我曾尝试在学校的 mac OS X 上编译带有标志“-Wall -Wextra -Werror”的文件,它工作得很好,但是当我回家并在 ubuntu 上尝试同样的事情时,它给了我这个错误:

tests/00_part1_ft_memset.spec.c: In function ‘unittest1’:
tests/00_part1_ft_memset.spec.c:9:12: error: ‘memset’ used with constant zero length parameter; this could be due to transposed parameters [-Werror=memset-transposed-args]
  mt_assert(memset(b1, 99, 0) == ft_memset(b1, 99, 0));

为什么它在 2 个不同的操作系统上的工作方式不同,是否可以让我的 ubuntu 像 OS X 一样使用react?有这个的配置文件吗?

最佳答案

我打赌你不是这个意思吧?

memset(b1, 99, 0);

这意味着你想将接下来的 0 个字节设置为 (unsigned char)99 没有给你任何值(value)...

你的意思可能是:

memset(b1, 0, 99); // to set the next 99 bytes to the value 0

关于linux - GCC 在 Mac OS X 上编译程序,但在 Ubuntu 上不编译程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34321116/

相关文章:

objective-c - 保留用户修改的应用程序名称列表的最佳方法

python - 使用 os.listdir 解决 OSError

c++ - 带有 std::execution::par_unseq 的 std::for_each 不适用于 GCC 但适用于 MSVC

c - 如何获取大页面的物理地址

linux - 在 Linux 服务器上配置和检查核心转储

macos - 运行私有(private) docker 镜像 : standard_init_linux. go:207 时出错:执行用户进程导致 "exec format error"

assembly - ARM 汇编不能同时使用立即数和 ADDS/ADCS

java - 在 Linux 机器上每 5 分钟使用 java 程序间歇更新数据库

linux - 性能 - 多线程或多进程应用程序

c - 基于 sizeof 运算符