在我的主.c文件中,我定义NUMBER为:
#define NUMBER '0'
Run Code Online (Sandbox Code Playgroud)
在另一个.c文件2中,我已将其声明为"extern int"变量并使用它.但是在编译gcc时会出现以下错误消息:
/tmp/ccsIkxdR.o: In function `file2':
file2.c:(.text+0xfd): undefined reference to `NUMBER'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
请建议我一个出路.提前致谢.
当您使用时#define,为预处理器定义一个宏.此宏仅在您定义的源文件中可见.没有其他源文件将看到此宏定义,并且预处理器将无法在其他源文件中为您扩展宏,因此编译器会看到符号NUMBER,它没有任何此类符号的声明.
要解决这个问题,您有两种选择:
NUMBER为适当的变量而不是宏,然后extern在另一个源文件中声明.| 归档时间: |
|
| 查看次数: |
1607 次 |
| 最近记录: |