解决办法和修改办法的总体思想
    1、在代码的语义和功能不变的情况下,进行c->c++的转变,消除编译器的跨平台编译报错问题;
    2、遇到编译问题,先看编译器提示信息,然后逐个排查和定位,去解决问题。

    1、当遇到c中的代码,数组使用动态变量初始化在GCC能编译通过,在MSVC上编译不过的时候解决办法,例如:
    原版C:

    1. void func1(int number)
    2. {
    3. int a[number];
    4. }

    移植版C++

    1. void func1(int number)
    2. {
    3. std::vector<int> a(number);
    4. }

    2、当遇到c中的代码,某函数在不同的.c中实现了两次,且是同样的函数名称在GCC能编译通过,在MSVC上编译不过的时候解决办法
    在报错的.cpp文件中,修改该声明和实现的相同函数名称的函数为另外一个名字

    3、当遇到c中的代码,某函数在.cpp和.h文件都已经声明和实现过,在另外一个.cpp中调用该函数的时候,报错该函数符号在另外一个.cpp中是外部符号,无法识别在GCC能编译通过,在MSVC上编译不过的时候解决办法
    找到该项目中的所有.h 试着删掉 以下的代码片段

    1. #ifdef __cplusplus
    2. extern "C" {
    3. #endif
    4. //一段代码
    5. #ifdef __cplusplus
    6. }
    7. #endif

    4、当遇到c中的代码,某宏定义的函数实现 在GCC能编译通过,在MSVC上编译不过的时候解决办法
    在不变语义的情况下,改为函数

    原文链接:https://blog.csdn.net/djt4541/article/details/105663335