微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Windows和LINUX中创建程序库[C]

我打算在我的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代码中的字符串.

原文地址:https://www.jb51.cc/windows/365462.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐