C_and_CPP 板


LINE

这篇文章会教你如何编出for MSVC的gsl library。 如果你想学习如何用Visual C++ link MinGW产生的dll档先别急着左转, 下面有网址会教你。 最近要用到一些线性代数的计算。 因为考虑到C/C++的效能较MATLAB好(老板的经验), 所以决定使用C/C++的linear algebra libraries。 最有名的linear algebra library莫过於LAPACK, 但是它是用Fortran写的,我想用C/C++ XD 虽然有人port LAPACK到C++,但很久都没有更新了。 後来我想到GSL,就去GSL官网找,发现没有binaries for Windows。 虽然非官网有人有编好的gsl for Windows,但已两年没有更新。 我仍然想试试自己编译gsl-1.11看看。 我就下载了gsl-1.11的source,看INSTALL,gsl可以在cygwin下编译、 也可以在MSYS下编译。由於自己体验过cygwin的效能很..., 所以决定用MSYS & MinGW编。 我的MinGW是安装Qt Open Source 4.4.0时一起装的, 所以我还少MSYS,所以我又去MinGW的官网下载了MSYS 1.0.10。 首先编译gsl。 打开MSYS: tar zxvf gsl-1.11.tar.gz cd gsl-1.11 ./configure make make install 这样就编完了。 但是去/usr/local/lib却只发现libgsl.a、libgsl.dll.a、...这几个档案, 没有发现libgsl.lib。 但在/usr/local/bin发现了libgsl-0.dll、libgslcblas-0.dll这两个档案。 但我目标其实要能在Visual C++下使用gsl。 因为我已经编好Qt for Visual C++ 2008,我想用Qt开发我的界面, gsl为使用的linear algebra library。 所以我试着在Visual C++ 2008下找了个gsl的范例程式, 然後link /usr/local/lib的档案libgsl.a、libgsl.dll.a, 但都失败,不是无法link,就是执行时期挂掉。 後来我不死心,试着去google搜如何用MinGW产生给VC++用的.lib档。 果然给我搜到了,就在MinGW的Wiki找到了。 http://www.mingw.org/MinGWiki/index.php/MSVC-MinGW-DLL 原来MinGW在编译libraries时候可以给参数产生一个叫def的档案。 有了它,然後用Visual Studio的lib指令就可以产生lib档。 但问题是我之前编译完gsl并没有发现仼何def档。 难道要我修改gsl的Makefile加上产生def的参数,重编一次吗? 太困难了,况且我也不太会改。 虽然我对def、lib、exp这些档案的关系不是非常的了解, 但我作了一个大胆的猜想, 理论上dll档里面的资讯应该是可以用某个程式汇出成def。 果然在上面那个网址就有提到mingw-utils package的pexports可以办得到。 我就又去官网下载了mingw-utils装。 然後试着产生libgsl-0.dll的lib档: cd /usr/local/bin pexports libgsl-0.dll >libgsl-0.def lib /machine:i386 /def:libgsl-0.def 结果真的产生了libgsl-0.lib。 然後用Visual C++ 2008 Express重编我的gsl范例,就成功执行了。 有图有真相: http://p8.p.pixnet.net/albums/userpics/8/3/553683/1217906585.png
那个范例程式是从GSL网站找的: http://www.gnu.org/software/gsl/manual/html_node/An-Example-Program.html 我用Visual C++ 2008编,输出结果是: -1.775967713143382600e-01 我用MinGW编,输出结果是: -1.775967713143382900e-01 GSL网站输出结果是: -1.775967713143382920e-01 不知道这是否是合理的误差? -- 西方三圣:http://p8.p.pixnet.net/albums/userpics/8/3/553683/1193661731.jpg
《佛说阿弥陀经》http://web.cc.ncu.edu.tw/~93501025/amtf.doc 《观世音菩萨普门品》http://web.cc.ncu.edu.tw/~93501025/pmp.doc --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.221.31
1F:→ zxvc:原来Borland的implib也是用类似的手法从dll产生lib档。 08/06 08:47
2F:推 BrianCashman:不用搞得这麽复杂,只要取得正确的sln与vcproj范例 09/03 15:16
3F:→ BrianCashman:往後的更新都可以直接以VC编译 09/03 15:17
4F:→ BrianCashman:http://david.geldreich.free.fr/dev.html 09/03 15:17
5F:→ zxvc:推荐B大的作法,用VC compile出来的档给VC用。最好不要像我 04/19 21:51
6F:→ zxvc:用MinGW compile libraries给VC用。 04/19 21:51
7F:→ zxvc:因为各家compiler有不相容的情形是很常见的。 04/19 21:52
8F:→ zxvc:就连Microsoft自家compilers compile出来的东西都有不相容。 04/19 21:54







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP