使用.def或__declspec(dllexport)导出跨平台代码的共享库符号
Use .def or __declspec(dllexport) to export shared library symbols for cross-platform code?
如何正确导出共享库符号(用于从Visual Studio中的客户端代码链接),同时确保代码是跨平台的?具体是使用.def作为推荐的方式,还是应该为__declspec(dllexport)使用特定于平台的宏?如果应该使用宏,你能举一个跨平台友好的例子吗?
我有一些用于跨平台使用的本机C++代码,并使用Cmake生成.sln/.vcxproj文件,该文件创建了用于Windows的.dll文件。要从C++/CLI包装器(也是dll)链接到此dll,我需要有.lib,它需要导出符号。我了解到我需要使用__declspec(dllexport)或.def文件。我担心的是,我不想用MSVC的东西来调和共享代码(我们需要支持Linux、iOS、Mac OSX、Android…)。
如果你和我一样是这个主题的新手(跨平台,从托管代码中使用非托管C++),你可以在这里看到我所做的示例(请参阅问题部分):尽管链接到带有导出符号的.lib文件,但从托管C++链接到非托管C++时发生链接错误
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 创建跨平台 C++ 触摸管理器.在 c++ 中传递 Objective-c 对象涉及代码
- 如何使用跨平台代码在C++中设置系统时间?
- 如何打包结构的成员以实现高效的跨平台代码
- Golang:在跨平台调用C++代码
- 在跨平台代码中使用抽象类的实例
- 使用.def或__declspec(dllexport)导出跨平台代码的共享库符号
- 具有本机代码支持的跨平台移动框架
- 跨平台C++代码和单头-多个实现
- 我试图想出一个跨平台的 sleep() 替代方案,但我的代码不太有效
- c++中的跨平台网络代码
- 跨平台代码标签宏
- 跨平台代码组织
- 为什么这样的理论上的跨平台代码不改变Windows上的Enviromental变量
- 在使用相同C++代码的跨平台窗体之间获取运行时错误