惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cisco Talos Blog
Cisco Talos Blog
阮一峰的网络日志
阮一峰的网络日志
云风的 BLOG
云风的 BLOG
D
Docker
Vercel News
Vercel News
IT之家
IT之家
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
腾讯CDC
Google DeepMind News
Google DeepMind News
I
InfoQ
博客园 - 三生石上(FineUI控件)
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
博客园 - Franky
The Cloudflare Blog
A
About on SuperTechFans
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
T
Tenable Blog
P
Proofpoint News Feed
Recorded Future
Recorded Future
Security Latest
Security Latest
H
Hackread – Cybersecurity News, Data Breaches, AI and More
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 聂微东
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Google Online Security Blog
Google Online Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Simon Willison's Weblog
Simon Willison's Weblog
The Last Watchdog
The Last Watchdog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
U
Unit 42
The Hacker News
The Hacker News
Martin Fowler
Martin Fowler
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
F
Full Disclosure
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
Project Zero
Project Zero

博客园 - 火鸟

一点想法 无 SOAP 的 Web 服务(转) 关于手机电池的基本知识 国际标准组织高票接纳闪联为其成员 MPEG2 TS与ISMA的比较 9@9d无线连接上WWW网 P2P流媒体服务器 P2P IPTV技术进展 [转载]公司不是我的家 ARPA——美国国防部高级计划署,Advanced Research Projects Agency 共创软件联盟维护863开源项目 什么是IPO [转载]纵横捭阖C++之从异步谈起 nunit 2.2.7下载 新春愉快 关于回调函数 用户属性“密码永不过期”修改方法 安装Tomcat过程中发现,出现using jvm.dl时进度条长时间不动,是什么原因? Microsoft ready to pull trigger on BizTalk beta
在Cygwin环境下使用动态库的方法
火鸟 · 2006-03-02 · via 博客园 - 火鸟

Cygwin是一个GNUWindows上的模拟环境,功能强大,广泛应用于嵌入式Linux应用开发,配合eclipse+CDT可以构建功能强大的嵌入式软件开发平台。Cygwin的原理是通过一个共享库Cygwin1.dll来屏蔽WindowsAPI,使得GNU可以工作在Windows之上,而不用对GNU工具的源码进行修改。

但是,由于windowslinux的文件系统和内核机制的差异,在使用动态库的时候,需要做一些小小的改动。

实例:

Mydll动态库提供hello()功能,

/* mydll.c */
 
#include <stdio.h>
 
int
hello()
{
  printf ("Hello World!\n");
}

Test.c使用动态库提供的hello()功能。

int 
main ()
{
  hello ();
}

1、 linux下使用动态库

首先将 mydll.c 编译成目标码:

gcc -c mydll.c

然后,告诉 gcc 将目标码生成动态库

gcc -shared -o libmydll.so mydll.o

然后,将动态库与测试程序连接:

gcc -o test myprog.c -L./ -lmydll

2、 Cygwin下使用动态库

首先将 mydll.c 编译成目标码:

gcc -c mydll.c

然后,告诉 gcc 将目标码生成动态库

gcc -shared -o mydll.dll mydll.o

然后,将动态库与测试程序连接:

gcc -o test myprog.c -L./ -lmydll

简而言之,就是将.so文件改成.dll文件即可。

参考资料:http://cygwin.com/cygwin-ug-net/dll.html