Ubuntu系统C++编译错误: expected unqualified-id <U+0000><U+0005>

2025-10-20
#Unix #Ubuntu #macOS #C

1. 问题

编译 C++ 项目时出现报错:

warning: null character ignored [-Wnull-character]
fatal error: expected unqualified-id <U+0000><U+0005>...

2. 原因

文件名是 ._Something.cpp —— 前面多了一个点和下划线。

这种文件是 macOS 自动生成的资源分叉文件(._ 开头), 在 Linux 上会被误认为是源码文件,于是编译器报错。

3. 解决方法

直接删除这些隐藏文件:

find . -name "._*" -delete

重新编译,一切恢复正常。

4. 总结

报错不是代码问题,而是不同系统之间多了幽灵文件。