VS2019运行环境为Windows,GCC一般运行环境为linux。MingW是个两面派,既不同于VS2019,也不同于GCC。
下面用例子证明这一点。
在此之前一些相关背景可以参考:
vs2019c++动态库的一些问题
迦非喵:vs2019c++动态库的一些问题zhuanlan.zhihu.comCMake+Win10+Vs2019动态库的问题
迦非喵:CMake+Win10+Vs2019动态库的问题zhuanlan.zhihu.com具体修改Hello.cpp 为:
main.cpp为:
在win10+vs2019编译运行有:
说明vs2019动态库定义了_Win32和Hello_EXPORTS,主程序定义了_Win32但没定义Hello_EXPORTS
在ubuntu20.04和gcc9.3下有:
说明gcc动态库没定义_Win32和但是定义了Hello_EXPORTS,主程序没定义_Win32但也没定义Hello_EXPORTS
在MingW+gcc8.1下有:
说明mingw动态库定义了_Win32和Hello_EXPORTS,主程序定义了_Win32但没定义Hello_EXPORTS
这一点mingw的表现和vs2019是一致的,也就是在编译时虽然用的gcc编译器,但是一些环境变量还是windows的。
感兴趣者可以举一反三,进行更多的尝试。