社区
IBM AIX
帖子详情
aix6.1 gcc编译时的一个警告
不辣
2012-09-20 02:29:58
"
ld: 0711-224 WARNING: Duplicate symbol
"
...全文
141
5
打赏
收藏
aix6.1 gcc编译时的一个警告
"ld: 0711-224 WARNING: Duplicate symbol"
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mymtom
2012-09-28
打赏
举报
回复
按道理 .h 里的变量是要加 extern 的。
但是如果没有初始化的话 去掉 extern 也是可以的。
具体的细节可以看看这个帖子的6楼
http://topic.csdn.net/u/20090730/18/c82db8af-6488-411a-b734-56bddd61a467.html
不辣
2012-09-28
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
6.1 的 ld 确实会由这种警告,建议查一下代码。
多半是在.h文件里定义变量引起的
C/C++ code
$ cat foo.h foo.c main.c
/**
* @file foo.h
* @brief
*/
int foo = 1;
/**
* @file foo.c
* @brief
*/
#inclu……
[/Quote]
道理是这样子的,问题是解决方法必须在头文件加"extern "? 这是不是比较常规的解决方法?不是太符合平时的习惯以及头文件的作用
mymtom
2012-09-25
打赏
举报
回复
6.1 的 ld 确实会由这种警告,建议查一下代码。
多半是在.h文件里定义变量引起的
[code=C/C++]
$ 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:
$
[/Code]
不辣
2012-09-24
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
警告没关系的
[/Quote]
这东西多了就比较咋眼
ll36031715
2012-09-20
打赏
举报
回复
警告没关系的
GCC
警告
选项例解
关于
gcc
编译
代码
时
,常见的
警告
解析,对于对代码精益求精的人需看看!
Gcc
编译
时
的-w -W -Wall选项
今天在看
一个
makefile
时
看到了
gcc
-W -Wall…这句,不明其理,专门查看了
gcc
的使用手册。 -w的意思是关闭
编译
时
的
警告
,也就是
编译
后不显示任何warning,因为有
时
在
编译
之后
编译
器会显示一些例如数据转换之类的
警告
,这些
警告
是我们平
时
可以忽略的。 -Wall选项意思是
编译
后显示所有
警告
。 -W选项类似-Wall,会显示
警告
,但是只显示
编译
器认为会出现错误的
警告
。 在
编译
一些项目的...
AIX
6.1
编译
openssl
AIX
6.1
安装包下载地址:ftp://www.oss4
aix
.org/latest/
aix
61/ (上次是在
AIX
7.1上
编译
的包,发现扔在
6.1
上跑不了,重新
编译
下) //缺啥包就下载安装啥包(安装上次7.1环境的
gcc
一直报头文件rid_t类型找不到,所以选择重新安装
gcc
) rpm -ivh
gcc
-4.9.3-1.
aix
6.1
.ppc.rpm --nodeps rpm -ivh lib
gcc
-4.9.3-1.
aix
6.1
.ppc.rpm --nodeps rpm -ivh libstdc++
AIX
6.1
下构建
GCC
/G++
编译
环境
网络上关于
AIX
安装
gcc
/g++文档很多,不过大多数都基于5.3,试图在一台
AIX
6.1
安装,安装过程少不了插曲,记录供查阅。 1. 下载
gcc
/g++ for
aix
6.1
版本。IBM官网提供了4.2.0.3的安装,网络关于4.2安装的文章也很多,这里就不赘述,但4.2.0.3在
编译
某个第三方C++库
时
有bug(和模版有关,因为是第三方库,鉴于不修改原始代码的原则,没有手工去修改代码),
gcc
-Wall
今天在看
一个
makefile
时
看到了
gcc
-W -Wall....这句,不明其理,专门查看了
gcc
的使用手册。 -w的意思是关闭
编译
时
的
警告
,也就是
编译
后不显示任何warning,因为有
时
在
编译
之后
编译
器会显示一些例如数据转换之类的
警告
,这些
警告
是我们平
时
可以忽略的。 -Wall选项意思是
编译
后显示所有
警告
。 -W选项类似-Wall,会显示
警告
,但是只显示
编译
器认为会出
IBM AIX
1,194
社区成员
1,018
社区内容
发帖
与我相关
我的任务
IBM AIX
该论坛主要探讨IBM AIX平台的安装、部署、应用开发等话题,并为网友们提供自由交流的平台。
复制链接
扫一扫
分享
社区描述
该论坛主要探讨IBM AIX平台的安装、部署、应用开发等话题,并为网友们提供自由交流的平台。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章