MinGW 是否支持 __declspec(dllexport)
/__declspec(dllimport)
?即使是这样,我应该使用 __attribute__((visibility("default")))
吗?基本上我应该根据平台或编译器决定使用什么?
应该是这样吗?
#ifdef _MSC_VER
# ifdef MYLIB_EXPORTS
# define MYLIB_API __declspec(dllexport)
# else
# define MYLIB_API __declspec(dllimport)
# endif
#else
# define MYLIB_API __attribute__((visibility("default")))
#endif
或者像这样?
#if defined(_WIN32) || defined(_WIN64)
# ifdef MYLIB_EXPORTS
# define MYLIB_API __declspec(dllexport)
# else
# define MYLIB_API __declspec(dllimport)
# endif
#else
# define MYLIB_API __attribute__((visibility("default")))
#endif
__declspec(align(16))
Vs 之类的东西呢? __attribute__((aligned(16)))
? 最佳答案
能见度对比dllexport 是一个平台的东西,而不是一个编译器的东西。因此,将 __declspec(dllexport)
/__declspec(dllimport)
(或 __attribute__((dllexport))
/__attribute__((dllimport))
)与 MinGW 一起使用是可行的方法。看:
http://gcc.gnu.org/wiki/Visibility#How_to_use_the_new_C.2B-.2B-_visibility_support
关于c - MinGW:使用 __declspec(dllexport) 或 __attribute__((visibility ("default")))?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22285240/