GNU系列Windows下编译安装的通用步骤

详细参考的文件夹内的README和INSTALL
下面的步骤以gnu gsl-2.3的为标准
我们的目的是在VS2010上使用gsl-2.3

准备步骤安装MinGW和MSYS

MinGW的本质是GCC在Windows上的一个实现,其与CygWin/gcc都是GCC在Windwos下的编译环境.二者的不同的是CygWin/gcc完全可以Linux下的GCC化等号.在CygWin/gcc做的东西可以无缝用在Linux下,无用问题.但是产品若在的Windows下执行的话就好依赖cygwinl.dll.而MinGW本质是GCC在Windows上的一个实现,不像CygWin/gcc在一个虚拟Linux上运行所以有一些工具不能使用(不过好处比CygWin更快).MSYS作为一个Linux的shell模拟,可与MinGW一同安装.
(由于笔者的MinGW没有安装pexports:特意说明下pexports的安装指令:mingw-get install mingw32-pexports(其他工具安装同理))

好了现在准备工作已经做好了现在的安装
运行MinGW/msys/1.0/下的msys.dat进入模拟shell
在shell中打开gsl的文件
./configur (来确定平台等编译的信息,生成makefile,可以通过的参数来对安装目录等进行控制)
make (对源代码进行编译)
makeinstall (进行安装)
makeclean (删除临时文件)

好了现在安装完成了,让我们来到msys下的local文件夹看看我们得到了什么
/include 毫不意外的里面是gsl的全部头文件
/bin 得到了libgsl.dll和libgslcblas.dll

如果想显调用的话到这里就可以,不过我们要隐调用的话惊讶的发现里面没有lib(在LIB文件夹下生成都是.a文件,Windosw下无法使用)
这时我们之前的pexports就派上用场了.
还是在msys中打开/bin 输入语句
pexporsts libgsl.dll >libgsl.def
pexporsts libgslcblas.dll >libgslcblas.def
(随便说下DEF的作用就是为链接器提供有关被链接程序的导出属性等信息 等抽空详细介绍下)
之后在vs2010的shell下用lib指令就可以生成我们的lib了
lib /def:libgsl.def /out:libgsl.lib
lib /def:libgslcblas.def /out:libgslcblas.lib

只有就是正常添加和放入DLL了~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章