当前位置:首页 » 编程软件 » aixgcc编译

aixgcc编译

发布时间: 2022-05-08 12:02:42

Ⅰ 请教:一般的SOCKET在AIX中如何编译

开源的gcc自然可以算是最佳选择。在64位平台的AIX中,如果选择运用 gcc来编译perl源代码,默认情况下是编译成32位的版本。这样在编译DBD::Oracle的时候也须要选择正确的32位库,否则不能编译成功。

Ⅱ 怎样设置gcc编译出程序的struct member align

为了解决Unix自定义结构在GCC优化编译中对齐问题,一般解决办法是用如下宏封装
自定义结构

#pragma pack(1)

struct my_arphdr
{
};

#pragma pack()

如果是SPARC/Solaris,还可以这样

struct my_arphdr
{
} __attribute__ ((packed));

两种办法其实都可以用在Unix系统/GCC编译器中。

D: mbuf@smth

关于结构中字节对齐问题,相应编译器选项为

GCC/G++ : -fpack-struct
Sun Workshop cc/CC: -misalign

最好不这样做,会大大降低程序效率,特别在某些架构中。应该尝试用位操作来处理。

D: Unknown@smth

GCC可以这么解决

#ifdef __GCC__
#define PACKED __attribute__((__packed__))
#else
#define PACKED
#endif

struct msg
{
u_int16_t PACKED first;
...
};

还是 VC 简单,#include <pshpack1.h> 就搞定了

A: gfh_nuaa

DEC : #pragma pack(1)
SUN : #pragma pack(1)
AIX : 编译时 -q align=packed
HP-UX : #pragma pack 1

D: Joe Durusau

在 Visual C++ 中,使用 "-ZP1" 就可以让编译器对自定义结构进行单字节对齐,实
际就是取消了对齐优化。

A: [email protected] 2001-12-20 13:09

1) 结构内部成员的pack

struct foo
{
char a;
int b __attribute__ ((packed));
};

2) 整个结构的pack

struct foo
{
char a;
int b;
}__attribute__ ((packed));

3) 文件范围的pack

#pragma pack(1)

struct foo
{
char a;
int b;
};

... ...

4) 编译选项的pack

-fpack-struct

但这是最危险的做法,因为这样做可能会使库函数和你的程序对结构内成员的偏移理
解不一致。

Ⅲ AIX下gcc编译器怎么使用动态连接库

链接静态库其实从某种意义上来说也是一种粘贴复制,只不过它操作的对象是目标代码而不是源码而已。因为静态库被链接后库就直接嵌入可执行文件中了,这样就带来了两个问题。
首先就是系统空间被浪费了。这是显而易见的,想象一下,如果多个程序链接了同一个库,则每一个生成的可执行文件就都会有一个库的副本,必然会浪费系统空间。
再者,人非圣贤,即使是精心调试的库,也难免会有错。一旦发现了库中有bug,挽救起来就比较麻烦了。必须一一把链接该库的程序找出来,然后重新编译。
而动态库的出现正弥补了静态库的以上弊端。因为动态库是在程序运行时被链接的,所以磁盘上只须保留一份副本,因此节约了磁盘空间。如果发现了bug或要升级也很简单,只要用新的库把原来的替换掉就行了。

Ⅳ 在AIX上编个gcc怎么就那么难

AIX上使用gcc和g++的一个编译问题的解决 - 人丑就要多读书,人穷...

Ⅳ 我在AIX6.1上安装的是gcc4.2.0的版本,在编译一段程序的时候报g++: Internal error: Segmentation fault

我给个建议,如果写个c++的helloworld.cpp编译不了,那就估计是编译器问题,否则就是代码问题。编译器问题无非是删除,重新安装文档安装。

Ⅵ AIX里怎么安装CC编译器

你要安装的是IBM的xlc吗?还是gcc编译器?

如果是xlc,首先在操作系统中安装依赖的文件集,比如bos.adt等等。

然后使用installp命令或者smit installp快捷菜单安装xlc,如果依赖的文件集没有安装,安装信息会有提示,并报错。

如果是gcc编译器,请按照gcc的说明文档编译安装。

Ⅶ 新手入门:AIX下如何用命令行编译并执行一个C程序GCC和CC的区别是什么

谢谢! 明天我去试一下。另外,在AIX下我输入:gcc -v 想查看GCC版本号,提示GCC不存在,但是输入:cc -v 则提示IBM XLC的版本信息,不知道这个是什么原因 ?

Ⅷ aix系统编译make

换gmake试一下

gmake是GNU Make的缩写。 Linux系统环境下的make就是GNU Make,之所以有gmake,是因为在别的平台上,make一般被占用,GNU make只好叫gmake了。 比如在安装二进制文件进行编译时要使用make命令,但如果在Solaris或其他非GNU系统中运行,必须使用GNU make,而不是使用系统自带的make版本,这时要用gmake代替make进行编译

Ⅸ 有哪位大哥在aix上用过tuxedo啊,最好是用gcc编译器

一般建议使用tuxedo的buildserver命令编译生成可执行文件,而不是直接cc/gcc,如果有特殊考虑必须直接使用cc/gcc,需使用-I、-L、-l参数后跟相应选项指明Tuxedo头文件所在目录、库文件所在目录、库文件;使用buildserver命令编译时,如果希望调用gcc而不是缺省的cc,可先设置环境变量CC=gcc

Ⅹ 如何在aix上安装gcc,g++编译器的相关推荐

AIX 上的C编译器基本都是收费的。

热点内容
交叉编译优化 发布:2025-05-14 03:48:52 浏览:529
动图在线压缩 发布:2025-05-14 03:35:24 浏览:132
w7共享无法访问 发布:2025-05-14 03:35:24 浏览:482
为什么微信会出现账号密码错误 发布:2025-05-14 03:03:30 浏览:692
幻影脚本官网 发布:2025-05-14 03:01:13 浏览:826
servlet的webxml怎么配置 发布:2025-05-14 02:51:46 浏览:772
怎么取消手势密码 发布:2025-05-14 02:51:11 浏览:639
openvpn搭建vpn服务器搭建 发布:2025-05-14 02:47:52 浏览:998
密码忘了从哪里找 发布:2025-05-14 02:39:09 浏览:548
我的世界什么服务器有前途 发布:2025-05-14 02:30:31 浏览:528