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

Linux和Windows链接器之间的区别

在各种操作系统上链接有什么不同?

例如,下面的代码会在Windows上产生链接错误(使用Vs2010和gcc编译),但是在Linux(Ubuntu,gcc)上成功编译:

extern int foo int main() { foo=1; }

Gcc命令:

gcc -shared filename.cpp

用g ++dynamic共享库编译

如何检查运行时为给定进程加载哪些共享库?

共享库vs可执行文件

在交叉编译的.so文件中是否有检查符号的工具?

如何使用waf来构build共享库?

Docker和MysqL:libz.so.1:无法打开共享对象文件:权限被拒绝

libcurl和libsoup之间的区别

为什么.bss部分映射到比目标文件中报告的bss小的进程?

Linux共享库c ++

如何从共享库中导出符号

如果你想把它编译成一个Windows共享库,你需要像(从维基百科窃取的代码!):

#include <windows.h> // DLL entry function (called on load,unload,...) BOOL APIENTRY DllMain(HANDLE hmodulee,DWORD dwReason,LPVOID lpReserved) { return TRUE; } // Exported function - adds two numbers extern "C" __declspec(dllexport) double AddNumbers(double a,double b) { return a + b; }

Windows共享模块(DLL)需要一个DllMain入口点(在第一次加载模块时执行),函数名需要通过declspec gobledygook导出,然后才能被另一个程序使用。

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

相关推荐