+ -
当前位置:首页 → 问答吧 → AIX下xlc编译C程序报警!Duplicate symbol!求助

AIX下xlc编译C程序报警!Duplicate symbol!求助

时间:2010-06-24

来源:互联网

ld: 0711-224 WARNING: Duplicate symbol

a.c
  1. #include <stdio.h>
  2. #include "public.h"

  3. int
  4. main ()
  5. {
  6.         char buff[buffSize];
  7.         func();
  8.         exit(0);
  9. }
复制代码
b.c
  1. #include <stdio.h>
  2. #include "public.h"

  3. int
  4. func ()
  5. {
  6.         char buff[buffSize];
  7.         return 0;
  8. }
复制代码
public.h
  1. #ifndef _PUBLIC_H_
  2. #define _PUBLIC_H_
  3. const int buffSize=2048;
  4. #endif
复制代码
编译命令
  1. xlc -bloadmap:MAP -o a a.c b.c
  2. a.c:
  3. b.c:
  4. ld: 0711-224 WARNING: Duplicate symbol: buffSize
  5. ld: 0711-344 See the loadmap file MAP for more information.
复制代码
MAP文件片段
  1. FILELIST: Number of previously inserted files processed: 5
  2. (ld): resolve
  3. ld: 0711-228 WARNING: Duplicate symbols were found while resolving symbols.
  4.     The following duplicates were found:
  5. Symbol                    Source-File(Object) OR Import-File{Shared-object}
  6. ------------------------- -------------------------------------------------
  7. buffSize                  a.c(a.o)
  8.     ** Duplicate **        b.c(b.o)
复制代码
如何能去除报警啊?

作者: julynada   发布时间: 2010-06-24

public.h改为
#define buffSize 2048
式下

作者: bittertea   发布时间: 2010-06-24

改用宏就没事了

作者: hellioncu   发布时间: 2010-06-24

为什么这样啊?这样的话,常量就不能定义在头文件里了么?

作者: julynada   发布时间: 2010-06-24

你的代码是.c 不是.cpp

作者: 九片_cu   发布时间: 2010-06-25