主题:[求助]请问怎么在c++中安装函数库
tyrant
[专家分:0] 发布于 2011-03-11 21:36:00
Armadillo 是一个线性代数包.我下载了,但是不知道怎么安装.我不是学编程的专业的,不知道那的安装说明是什么意思.他的安装说明是
* Step 1:
Copy the entire "include" folder to a convenient location
and tell your compiler to use that location for header files
(in addition to the locations it uses already).
Alternatively, you can use the "include" folder directly.
* Step 2:
Modify "include/armadillo_bits/config.hpp" to indicate
which libraries are currently available on your system.
For example, if you have LAPACK and BLAS present,
uncomment the following lines:
#define ARMA_USE_LAPACK
#define ARMA_USE_BLAS
* Step 3:
If you have LAPACK and/or BLAS present, configure your
compiler to link with these libraries.
You can also link with the the equivalent of LAPACK and BLAS,
e.g. Intel's MKL or AMD's ACML. Under Mac OS X, link using
-framework Accelerate
回复列表 (共7个回复)
沙发
windy0will [专家分:2300] 发布于 2011-03-12 15:11:00
楼主下的是源代码吧?可能还要在命令行下把它生成库文件.对于C++的代码我基本不懂,不知道是不是类的实现代码基本上在头文件里.
我的英语也很烂,上面的说明可能是是这样的.
第一步 , 复制 "include"文件夹到合适的位置,然后把它加入到编译器的包含文件里.或者直接使用"include"目录.这样,以后写代码的时候不要再指定包含文件了,只用#include预指令就可以了.
第二步, 修改"include/armadillo_bits/config.hpp"文件夹,来表示当前哪个库是能使用的.如当前需要使用 LAPACK 和 BLAS ,那么把 下面两行解除注释:
#define ARMA_USE_LAPACK
#define ARMA_USE_BLAS
这两行在源代码中应该被注释掉了的.
第三步,连接库.配置好编译器.这里可能需要在命令行下生成库文件,如.a文件或.lib文件.
当然,也可以连接LAPACK,BLAS的同类库,如Intel平台的MKL库,AMD平台的ACML库. 在Mac OS X平台下,使用参数"-framework Accelerate"连接.
板凳
tyrant [专家分:0] 发布于 2011-03-12 22:18:00
那个英文我看得懂,但是
第一步 , 复制 "include"文件夹到合适的位置,然后把它加入到编译器的包含文件里.或者直接使用"include"目录.这样,以后写代码的时候不要再指定包含文件了,只用#include预指令就可以了.
[color=FF0000]合适的位置是哪里?怎么把它加入到编译器的包含文件里[/color]
第二步, 修改"include/armadillo_bits/config.hpp"文件夹,来表示当前哪个库是能使用的.如当前需要使用 LAPACK 和 BLAS ,那么把 下面两行解除注释:
#define ARMA_USE_LAPACK
#define ARMA_USE_BLAS
这两行在源代码中应该被注释掉了的.
[color=00FF00]我怎么知道哪个库可以用[/color]
第三步,连接库.配置好编译器.这里可能需要在命令行下生成库文件,如.a文件或.lib文件.
当然,也可以连接LAPACK,BLAS的同类库,如Intel平台的MKL库,AMD平台的ACML库. 在Mac OS X平台下,使用参数"-framework Accelerate"连接.
[color=FF0000]连接库.配置好编译器,命令行下生成库文件.怎么连接,怎么配置,怎么生成文件[/color]
3 楼
windy0will [专家分:2300] 发布于 2011-03-13 15:40:00
我也下了Armadillo包,C++代码看得我头痛。感觉这个包是不能直接用的:需要联合BLAS库或LAPACK库使用(个人觉得这个包是对一些C接口进行封装)。所以说,可能还要去下这两个库之一。(不过,examples文件夹里面的lib_win32文件夹里有这两个库,包括静态库.lib和动态库.dll)。examples文件夹里还有示例代码,对里面的makefile稍做修改后只要在命令行输入make all就可以生成示例程序。
在使用的时候要对config.hpp文件做必要的修改。有时候可以看下源代码中的makefile文件,可以更好的掌握包的使用,很多东西在makefile里面写的非常清楚。
4 楼
tyrant [专家分:0] 发布于 2011-03-15 14:57:00
能说清楚点吗,我不是学编程专业的,对你这些专业术语不懂,那个数学库对我很重要,所以能不能给详细的安装步骤给我呢.或加我QQ 42449663
5 楼
windy0will [专家分:2300] 发布于 2011-03-16 11:20:00
不知道楼主用的什么编译器,以及什么什么IDE.看能帮得上什么忙。
6 楼
tyrant [专家分:0] 发布于 2011-03-16 14:19:00
我用的是DEV-C++这个编译器 ,在window下运行的.请问要怎么做呢
7 楼
windy0will [专家分:2300] 发布于 2011-03-16 21:36:00
试试这样:
1.把armadillo包解压到d盘,并把文件夹重命名为armadillo。
2.然后在d:\armadillo\下建立一个文件夹,名为lib。把F:\armadillo\examples\lib_win32文件夹里面的.dll文件和.lib文件复制到刚建立的文件夹中。然后把.lib文件名重命名,blas_win32_MT.lib名字改为libblas.a ,lapack_win32_MT.lib名字改为liblapack.a.
3.设置头文件目录。在Dev-C++中 的 工具/编译选项/目录/C++包含文件 添加d:\armadillo\include文件夹。
4.添加库目录。 在 工具/编译选项/目录/库 添加d:\armadillo\lib文件夹。
5.添加链接参数。在 工具/编译选项/编译器/在连接器命令行加入以下命令(一定要勾选) ,然后在下面的框框中输入 -lblas -llapack 。
6.修改 config.hpp文件, 把
#define ARMA_USE_LAPACK
#define ARMA_USE_BLAS
解除注释。
7.可能需要一个比较新的编译器。
[code]#if (__GNUC__ < 4)
#error "*** Need a newer compiler ***"
#endif[/code]
可能需要一个4.0或者更新的g++.你到
[url]http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/mingw-get-inst-20110313/mingw-get-inst-20110313.exe/download[/url]可以下一个g++ (GCC) 4.5.2版本的G++.然后覆盖老版本的就好了。
现在,examples文件夹有几个例子可以试试,如果上面都弄好了的话,应该可以编译成功了的。不过,编译好的程序必须要有动态链接库.dll(运行程序时需要把 该程序 和 d:\armadillo\lib文件夹里面的2个动态链接库.dll文件放到同一个目录中),否则不能运行。如果想静态编译的话,最好到lapack官网上下一个静态库。
如果在安装g++ 4.5.2的时候遇到了问题,可以到谷歌上搜, 也可以在论坛里提出来。
我来回复