swiftlang/swift
在 GitHub 查看[SR-4716] Better diagnostics for multifile executable without a main.swift file
Open
#47,293 创建于 2017年4月27日
compilerdiagnostics qualitygood first issueimprovementlegacy driver
描述
| Previous ID | SR-4716 |
| Radar | None |
| Original Reporter | @huonw |
| Type | Improvement |
| Status | In Progress |
| Resolution |
| Votes | 0 |
| Component/s | Compiler |
| Labels | Improvement, DiagnosticsQoI, Driver, StarterBug |
| Assignee | None |
| Priority | Medium |
md5: 107a386ff1ef4614f95e66bc776c43f4
Issue Description:
$ touch file1.swift file2.swift
$ swiftc file1.swift file2.swift
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)
The problem here is neither file is called main.swift, so the top-level-code `main` function doesn't get emitted. The compiler should check the file names and emit an error rather than going all the way through compilation to hit the link error.