aixgcc编译
Ⅰ 请教:一般的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编译器基本都是收费的。