忽略未使用条件的gcc选项是什么 #如果__STDC_uuu&(_MSC_VER“和#if block处于活动状态而#else block处于禁用状态”-这意味着什么?它在哪里处于活动/禁用状态?对我来说,上面的代码可以工作(在VStudio、Ubtu和m

忽略未使用条件的gcc选项是什么 #如果__STDC_uuu&(_MSC_VER“和#if block处于活动状态而#else block处于禁用状态”-这意味着什么?它在哪里处于活动/禁用状态?对我来说,上面的代码可以工作(在VStudio、Ubtu和m,gcc,mingw32,Gcc,Mingw32,忽略未使用条件的gcc选项是什么 #如果__STDC_uuu&(_MSC_VER“和#if block处于活动状态而#else block处于禁用状态”-这意味着什么?它在哪里处于活动/禁用状态?对我来说,上面的代码可以工作(在VStudio、Ubtu和mingw上)。这意味着第一个条件为true,else block应该被忽略。在编辑器上,else block处于非活动状态(无法访问)但编译器给出了错误。我回到这里是为了其他一些文件中的相同问题。GCC开始编译,并在第一步将其旁路。稍后,当它找

忽略未使用条件的gcc选项是什么
#如果__STDC_uuu&(_MSC_VER“和#if block处于活动状态而#else block处于禁用状态”-这意味着什么?它在哪里处于活动/禁用状态?对我来说,上面的代码可以工作(在VStudio、Ubtu和mingw上)。这意味着第一个条件为true,else block应该被忽略。在编辑器上,else block处于非活动状态(无法访问)但编译器给出了错误。我回到这里是为了其他一些文件中的相同问题。GCC开始编译,并在第一步将其旁路。稍后,当它找到对被绕过部分的引用时,我希望它给出“undefined symbol…”,但GCC错误地包含了绕过的部分。这是因为编辑器intellisense的行为与编译器不同。您使用的编辑器是什么?GCC版本是什么?我假设它在Win上。我使用Code::Blocks(17.12)对于WiMW32与GCC 4.92的默认编辑器。编辑器和编译器是很好的一起来。编辑器编译器的不匹配发生在Visual C++编译器和Borland编译器中,所以我不能用代码::块。Borland C++和Visual C++编译的那个部分是正确的,但是我想把所有的东西都迁移到GCC中,因为它对于交叉编译来说更方便。g、 目前,我正在尝试迁移一个旧的MFC/ATL应用程序。我在GCC中发现的另一个问题是,GCC无法识别操作员(&)的地址。例如:“define REFCLSID const CLSID&”是GCC的一个错误。好吧,那段代码真的很旧。为什么不应该修改它?只需删除ifdef并只留下您关心的部分(尽管我这样做时没有定义变量)。因此,您应该坚持常规流程。
CLSID
内容是特定于Win的,因此您不会在gcc中使用它。您必须自己手动移植它。但我认为您在任务中成功的机会很小。为什么要在gcc下移植它?请尝试使用更新的VStudio版本。
 #if !__STDC__ && (_MSC_VER <= 1000) && !defined(__BORLANDC__)
 /* For backward compatibility */
 typedef VARIANT_BOOL _VARIANT_BOOL;
 #else
 /* ANSI C/C++ reserve bool as keyword */
 #define _VARIANT_BOOL    /##/
 #endif