我很难找到 C++ 编译器究竟如何决定要定义或未定义的符号。我的意思是如何在 C++ 源代码中知道变量/函数是否将被编译为已定义或未定义的符号。首先,我认为所有已定义的变量/函数都将是已定义的符号,但似乎并非如此。考虑到静态,外部,内联,......关键字,有没有办法准确地确定这一点?
*更新问题不在于 C++ 中的定义和声明,也不在于我的代码是否可以编译。现在我认为如果我编译代码并使用 nm 检查目标文件,一些仅在 C++ 源代码中声明的函数/变量会成为定义的符号。我需要这些信息:已定义/声明的 C++ 函数/变量如何编译为对象文件的已定义/未定义符号(例如 ELF)。