AIX:+QLangLVL= NeXExp中的C++编译器标志,除非我为64位编译添加-64,为什么?

AIX:+QLangLVL= NeXExp中的C++编译器标志,除非我为64位编译添加-64,为什么?,aix,flags,Aix,Flags,因此,我向现有项目添加了一个异常,但遇到了一个问题。我有以下编译器标志: OC_COMPFLAGS = -c $(OC_DEBUG_COMPFLAGS) **-q64** -qcpluscmt -qinitauto=00 $(OC_OPT_COMPFLAGS) -D_RWCONFIG_8d -DXML_LIBRARY **-qlanglvl=ansifor:newexcp** -qlonglong -qfuncsect -bnoquite -bloadmap -qnamemangling=v8

因此,我向现有项目添加了一个异常,但遇到了一个问题。我有以下编译器标志:

OC_COMPFLAGS =  -c $(OC_DEBUG_COMPFLAGS) **-q64** -qcpluscmt -qinitauto=00 $(OC_OPT_COMPFLAGS) -D_RWCONFIG_8d -DXML_LIBRARY **-qlanglvl=ansifor:newexcp** -qlonglong -qfuncsect -bnoquite -bloadmap -qnamemangling=v8

newexcp标志可以完美地工作,除非我们添加-q64标志,此时它停止工作。有人知道为什么吗?

这可能适用于:

用户可以通过向其程序添加以下调用来获得抛出异常的新功能:
__设置新的抛出例外

这可能适用于以下情况:

用户可以通过向其程序添加以下调用来获得抛出异常的新功能:
__设置新的抛出例外

你需要确切地告诉我们它停止工作意味着什么。当然,作为一个测试,我添加了一个try/catch,并尝试分配大量内存。如果没有-q64,我会抓到bad_alloc&e,但是有了它,就不会抛出异常。有多大?是否分配刚刚成功?你在用什么语言?不可能-它在一个whiletrue循环中不断地做int*a=newint[1000];使用C++,正如我所说的,尝试在每个迭代中加倍分配的大小。这将使您达到无法很快分配的大小,并演示new失败时是否引发异常。在尝试分配之前打印大小。如果它看起来大得离谱,那将是另一个问题。使用unsigned long或unsigned long long作为分配大小。您需要确切地告诉我们它停止工作的含义。当然-作为测试,我添加了try/catch,只是尝试分配大量内存。如果没有-q64,我会抓到bad_alloc&e,但是有了它,就不会抛出异常。有多大?是否分配刚刚成功?你在用什么语言?不可能-它在一个whiletrue循环中不断地做int*a=newint[1000];使用C++,正如我所说的,尝试在每个迭代中加倍分配的大小。这将使您达到无法很快分配的大小,并演示new失败时是否引发异常。在尝试分配之前打印大小。如果它看起来大得离谱,那将是另一个问题。使用unsigned long或unsigned long作为分配大小。