利用cygwin编译cholmod以获得在windows上可用的库lib

2024-06-10 22:18

本文主要是介绍利用cygwin编译cholmod以获得在windows上可用的库lib,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文http://blog.parlin.me/complie-cholmod-to-get-library-for-win64/

记录要点:

cygwin好好装,希望哪位神人能够提供一个好用的cygwin国内mirror。

编译cholmod的时候,跨平台编译链接选项要配套,都要x86_64-w64-ming32开头的(因为这是64位win7)。

cholmod之前要搞到lapack和blas,lapack之前要先搞blas。问题是blas用哪个?

blas.tgz? atlas? goto blas?

说一下流程吧:

1.假定下好了cygwin,改好.bat的配置。(反正你装不好cygwin就各种错,不是缺dll,就是少某个二进制文件,要不然就是少某个lib)

2.把从后面链接里面的SuiteSparse包扔到home来。

3.进去改SuiteSparse_config.mk,要改的标签有CC(mingw64),AR(mingw64),RANLIB(mingw64),CF(-mno-cygwin)(以摆脱编译好的库对cygwin的依赖),LAPACK,BLAS(静态库文件的路径),LIB(去掉lrt,这个是for gcc的),CHOLMOD_CONFIG(-DNPARTITION 去掉metis依赖, -DNSUPERNORDAL 去掉CHOLMOD中SUPERNORDAL组件的编译,因为我试了好几个版本的BLAS库都缺这里面的几个函数的定义SUPERNORDAL可以不去掉的,你只要在使用了cholmod的工程中加上链接选项-lblas和-llapack就好了啦,不过这样的话你就又需要一个win平台的lapack和blas的lib了,不过这个相对来说就好解决了)。

4.去CHOLMOD里面make就好了,中间可能会有几个.a文件傻掉,就按照提示,去对应目录ranlib一下就好,比如去COLAMD的Lib里面ranlib libcolamd.a。

5.make假如没问题就ok了,虽然make了无数次都有问题吧,好歹最后成了。总之遇到问题google就好了,虽然不一定真的会变好。

(小记一下google过的问题和疑似解:

CHOLMOD WINDOWS—–>cygwin\mingw\cmake\手写VSproj\编译好的库

windows 编译 linux 库—–>同上

cygwin—–>安装、配置、镜像、源

-lrt cannot find such file—–>gcc和mingw的区别

BLAS/METIS/LAPACK on windows—–>CMAKE是神器,如果出这个库的组织自己给写了cmakelist那就实在是太好了,可惜有些组织就是那么懒,当然这也不能怪他们,要怪就怪windows

BLAS—–>cblas.tgz、gotoblas二货的主页找不到了、atlas好难配置啊就不能简单点?

LAPACK—–>lapack with blas

其实以上两个问题很二,cygwin已经自带blas和lapack了,不过因为不是.so而是.a所以不能-l链接

等等以及忘了。。 烦人的东西谁记得住,记住这些不错了。

6.把libcolamd.a libamd.a libcholmod.a 拿出来,改后缀为.lib,以及CHOLMOD中的include拿出来,就是一套可用的API了,就可以拿到windows上的VS里面跑了。

7.苦尽甘来否?

8.编译好的win7-64bit包,/include & /lib,百度网盘链接,x64: 请点我,x86: 请点我,搞不到的话请mail我:bupt[dot]aswmtjdsj[at]gmail[dot]com

或者

parlin[at]outlook[dot]com

cholmod的主页:http://www.cise.ufl.edu/research/sparse/cholmod/

This entry was posted in  UseKnowledgeToFightTheWorld and tagged  cholmod,  compiling,  cross-platform,  cygwin,  windows by  Parlin.Miracle. Bookmark the  permalink.

这篇关于利用cygwin编译cholmod以获得在windows上可用的库lib的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1049418

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

Windows环境下安装达梦数据库的完整步骤

《Windows环境下安装达梦数据库的完整步骤》达梦数据库的安装大致分为Windows和Linux版本,本文将以dm8企业版Windows_64位环境为例,为大家介绍一下达梦数据库的具体安装步骤吧... 目录环境介绍1 下载解压安装包2 根据安装手册安装2.1 选择语言 时区2.2 安装向导2.3 接受协议

jdk21下载、安装详细教程(Windows、Linux、macOS)

《jdk21下载、安装详细教程(Windows、Linux、macOS)》本文介绍了OpenJDK21的下载地址和安装步骤,包括Windows、Linux和macOS平台,下载后解压并设置环境变量,最... 目录1、官网2、下载openjdk3、安装4、验证1、官网官网地址:OpenJDK下载地址:Ar