当前位置: 代码迷 >> AIX >> aix6.1 gcc编译时的一个警告解决方案
  详细解决方案

aix6.1 gcc编译时的一个警告解决方案

热度:8789   发布时间:2013-02-26 00:00:00.0
aix6.1 gcc编译时的一个警告
"ld: 0711-224 WARNING: Duplicate symbol"


------解决方案--------------------------------------------------------
警告没关系的
------解决方案--------------------------------------------------------
6.1 的 ld 确实会由这种警告,建议查一下代码。
多半是在.h文件里定义变量引起的

$ cat foo.h foo.c main.c
/**
 * @file        foo.h
 * @brief       
 */
int foo = 1;


/**
 * @file        foo.c
 * @brief       
 */
#include "foo.h"


/**
 * @file        main.c
 * @brief       
 */
#include <stdio.h>

#include "foo.h"

int main(int argc, char *argv[])
{
        printf("%d\n", foo);

        return 0;
}
$ xlc -o foo foo.c main.c
foo.c:
main.c:
ld: 0711-224 WARNING: Duplicate symbol: foo
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
$ cat foo.h foo.c main.c 
/**
 * @file        foo.h
 * @brief       
 */
extern int foo;


/**
 * @file        foo.c
 * @brief       
 */
#include "foo.h"

int foo = 1;


/**
 * @file        main.c
 * @brief       
 */
#include <stdio.h>

#include "foo.h"

int main(int argc, char *argv[])
{
        printf("%d\n", foo);

        return 0;
}
$ xlc -o foo foo.c main.c
foo.c:
main.c:

  相关解决方案