gpt4 book ai didi

c - MIPS 和英特尔 C 编译器之间的宏定义是否兼容?

转载 作者:太空宇宙 更新时间:2023-11-04 04:08:24 27 4
gpt4 key购买 nike

我在 C 程序中定义的宏似乎有问题。

我用MIPS编译器编译了这个软件并运行成功。

它构建正常,但在使用 icc 时在运行时抛出错误“Segmentation fault”。

我在 64 位架构(SGI 上的 MIPS,在英特尔平台上带有 -64 标志和 icc)上编译了这两个。

我需要使用一些神奇的开关来使它在两个系统上都能正常工作吗?我打开了英特尔编译器的警告,我的程序中调用宏的每个地方都会引发警告。通常是宏参数的不匹配类型(int 到 char *)或类似的东西。

这是有问题的宏

 #define DEBUG_ENTER(name) {tdepth++; 
if(tnames[tdepth] == NULL) tnames[tdepth] = memalign(8, sizeof(char)*MAXLEN);
strcopy(tnames[tdepth],name);
FU_DEBUG("Entering \n");}

这基本上用于调试 - 根据函数调用的数量打印到日志文件中,其中包含一定数量的选项卡。 (tdepth = 标签深度)

我在手册页中做了一些检查。似乎 memalign 只在 IRIX 上受支持。这可能是我的问题。我要追踪它。

最佳答案

这可能与系统的“字节顺序”有关。寻找 here似乎 MIPS 具有可切换的字节顺序。我不确定您是否已经在使用正确的字节顺序,但如果不是,您肯定会遇到问题。

关于c - MIPS 和英特尔 C 编译器之间的宏定义是否兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2924142/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com