Chinaunix首页 | 论坛 | 博客

pacman2000的ChinaUnix博客

在编程的影子传说

分类: AIX

2017-08-26 12:12:05

最近在AIX环境下,使用esql编译ec/ecpp形成的.o和xlc/xlC编译普通c/cpp形成的.o进行连接,运行时发现不同.o调用传递struct结构参数访问会有错位。

排除了程序本身的原因,最后发现是AIX下esql和xlc编译时默认结构对齐编译参数设置是不同的。

esql编译时,可以用esql -v查看,发现-qalign=nature,而根据xlc帮助,默认-qalign=power,两者是不同的。

由于esql编译形成的.o在其他项目已经在使用,因此修改了c/cpp的makefile,加上参数-qalign=nature,重新编译连接,解决了这个问题。


阅读(92) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册