在各种操作系统上链接有什么不同?
例如,下面的代码会在Windows上产生链接器错误(使用Vs2010和gcc编译),但是在Linux(Ubuntu,gcc)上成功编译:
extern int foo int main() { foo=1; }
Gcc命令:
gcc -shared filename.cpp
用g ++dynamic共享库编译
如何检查运行时为给定进程加载哪些共享库?
共享库vs可执行文件
如何使用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] 举报,一经查实,本站将立刻删除。