wordpress
发布时间:2022-04-02 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Windows和LINUX中创建程序库[C],大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
概述
我打算在我的C程序中使用库.开发正在 Linux上进行,但应用程序旨在在Linux和Windows上进行编译.据我所知,Windows中共享库(.so)的直接等价物是DLL,对吧? 在使用g的Linux中,我可以使用-fPIC和-shared标志创建共享库. AFAIK,共享库不需要进行其他代码更改.但是Windows DLL中的情况有所不同.在那里我应该指定必须使用dllexport导出的功能,
我打算在我的C程序中使用库.开发正在
Linux上进行,但应用程序旨在在Linux和Windows上进行编译.据我所知,Windows中共享库(
.so)的直接等价物是DLL,对吧?
在使用g的Linux中,我可以使用-fPIC和-shared标志创建共享库. AFAIK,共享库不需要进行其他代码更改.但是Windows DLL中的情况有所不同.在那里我应该指定必须使用dllexport导出的功能,对吧?
我的问题是如何处理这种情况?我的意思是dllexport在Linux中无效,编译器会出错.但它在Windows中是必需的.那么如何编写一个可以在两个平台上编译而无需更改代码的函数呢?
使用的编译器
> g – LINUX
> VC – Windows
任何帮助都会很棒!
我们为类指定__declspec(dllexport):
#define EXPORT_XX __declspec(dllexport)
class EXPORT_XX A
{
};
然后,您可以检查平台并仅在Windows上定义宏.例如.:
#ifdef WIN32
#define EXPORT_XX __declspec(dllexport)
#else
#define EXPORT_XX
#endif
我们主要构建静态库,因此可能有更多的事情要做动态库,但概念是相同的 – 使用预处理器宏来定义需要插入到Windows代码中的字符串.
大佬总结
以上是大佬教程为你收集整理的在Windows和LINUX中创建程序库[C]全部内容,希望文章能够帮你解决在Windows和LINUX中创建程序库[C]所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。