读书人

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

发布时间: 2013-01-11 11:57:35 作者: rapoo

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:
$

读书人网 >其他服务器

热点推荐