gsl编译
Ⅰ 打开GSL比赛地图出现的错误问题,求帮助
这一句声明和定义都做了,在程序之前加int i定义,在c文件的程序之前必须加上int i进行定义,再在某一个你要调用该变量的c文件的程序之前再定义(注意第一个调用的c文件要负责附带初始化该变量。
对于大一点的程序。extern int i=0,有很多c文件和头文件。如果在头文件中定义。如果只有头文件中声明就会出现没有定义有警告。如果要在头文件中定义有以下两种方法,怎么能是没注册呢,则编译的时候会出现重复定义的错误。
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL!;这一句只是对变量i进行声明,把你的头文件中的变量定义前加extern(只是变量声明不做兄用初始化).obj (222)
出现上述错误则是因为变量k重复定义!
对于比较小的程序,然后在一个c文件中定义(该初碰胡乎始化的要笑悉初始化),一般只有一个c文件和一个头文件:用extern来声明这个问题分别是重复定义了么: K
MODULE:extern int i,这个时候全局变量就必须在头文件中声明(不需要初始化),全局变量我们通常会直接定义在c文件中!: 222
Ⅱ 如何使用 Homebrew 安装指定版本的工具
Homebrew 是一个 Mac 下的安装管理 Unix 工具的工具。安装好之后,在命令行下使用 brew install FORMULANAME就可以安装 FORMULANAME 对应的工具,它会处理好依赖关系,非常方便。默认情况下,安装最新版本。闹坦轮
但是在某些情况下,我们可能需要安装“旧”版本的工具,或者说安装指定/特定版本的工具,该怎么办呢?还好,Homebrew 已经提供了这类的支持。
今天安装 gsl 这个 rubygem ,编译本地库时失败了。我机器的环境是:
gsl-1.15
ruby-1.9.3p125
其中 gsl 是使用 brew install gsl 安装的,安装了最新的1.15版本。执行 gem install gsl 时的一条错误信息是:
conflicting types for ‘gsl_matrix_complex_equal’
于是顺着这条错误信息 Google ,发现很多人都遇到这个问题了。有人说,应该安装 gsl-1.14 而不是 gsl-1.15 。而最新的 gem 版本为 1.14.7 。看来很可能是版本不兼容。
所以我需要给 gsl 降级。 由于 gsl 是通过 Homebrew 安装的,所以需要找到安装特定版本液信工具的方法。于是在 Stackoverflow 上找到了方法。其实很简单:
1. 查看 brew 支持哪些版本的 gsl
$ brew versions gsl
1.15 git checkout 164c57f /usr/local/Library/Formula/gsl.rb
1.14 git checkout 83ed494 /usr/local/Library/Formula/gsl.rb
1.13 git checkout b0b2584 /usr/local/Library/Formula/gsl.rb
非常幸运,1.14 包括在内。
2. 进入 brew 所在的git仓库
cd `brew --prefix`
3. 复制粘贴刚才 brew versions sql 命令的提示。执行
git checkout 83ed494 /usr/local/Library/Formula/gsl.rb
4. 此时安装使用 brew install gsl 会提示错误
Error: gsl-1.15 already installed
To install this version, first `brew unlink gsl'
因此需要先取消之前的链接,执行
brew unlink gsl
提示
Unlinking /usr/信稿local/Cellar/gsl/1.15... 16 links removed
5. 安装成功
brew install gsl
Ⅲ 如何学习gnu scientific library 源代码
GNU scientific library 是一个强大的C,C++数学库。它涉及的面很广,并且代码效率高,接口丰富。正好最近做的一个项目中用到多元高斯分布,就找到了这个库。
GNU scientific library下载地址:http://ftpmirror.gnu.org/gsl/
相应说明文档下载地址: http://www.gnu.org/software/gsl/manual/gsl-ref.ps.gz
下载之后,需要进行安装,我使用的系统是ubuntu 12.04 LTS步骤如下:
1, ./configure
2, make
3, make install
这是把库安装在默认路径的方法,这里是 /usr/local/lib
之后需要把/usr/local/lib 这个路径添加到 LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
以上就是整个安装步骤,之后就可以在c,c++程序中进行调用了。
编译和调用的时候,也有一些需要注意的地笑大兆方:
编译时需要加上一些后缀:
g++ xxx.cpp -lgsl -lgslcblas -lm
调用时,只需要包含相应模块的头文件即仿尘可(说明文档里面会有提到函数对应的头文件名)
库的头文件都是放在 gsl/目录下的,写的时候,按照下面的写法就行。
#include <gsl/xxx.h>
以上就是本人使用 GNU scientific library 的一些体会。这个库确实很实用,碰租有不少地方值得挖掘。对于要常常在程序中使用到高等数学知识的程序员,是个不可多得的好东西。
Ⅳ 求教如何在visual studio201x上使用GNU的gsl库
我用着没有问题啊,最新的6.3版本,链接的是openBLAS,不过我比较偷懒枯谨,没有把库目录什迅桥么的设置一遍,反正只编译64位的程序,直接把一众dll、lib添加进项目了事,你可以参考下我的食用方法: 1. Armadillo库本身:这个还是亩败猛要设置进VC++目录的,...
Ⅳ opencv中的gsl库怎么安装
gsl的安装方法
gsl在dev-c++下的移植:
(2)安装gsl,安装后在安装目录下将有如下目录
\contrib\gsl-1.8 一些说明文件
\bin 二进制文件
libgsl.dll gsl的动态链接库(基于gcc的正式版本)
libgsl_d.dll gsl的动态链接库(基于gcc的调试版本)
libgslcblas.dll cblas的动态链接库(基于gcc的正式版本)
libgslcblas_d.dll cblas的动态链接库(基于gcc的调试版本)
gsl-histogram.exe 用于计算数据直方图的程序
gsl-randist.exe 用于生成服从指定分布数据的程序
\lib 库文件
libgsl.a gsl的静态链接库(基铅段于gcc的正式版本)
libgsl_d.a gsl的静态链接库(基于gcc的调试版本隐蔽)
libgslcblas.a cblas的静态链接库(基于gcc的正式版本)
libgslcblas_d.a cblas的静态链接库(基于gcc的调试版本)
libgsl_dll.a libgsl.dll的gcc输入库
libgsl_d_dll.a libgsl_d.dll的gcc输入库
libgslcblas_dll.a libgslcblas.dll的gcc输入库
libgslcblas_d_dll.a libgslcblas_d.dll的gcc输入库
libgsl.def 输出libgsl.dll的定义
libgslcblas.def 输出libgslcblas.dll的定义
\doc 有关文档
\info
\man1
\man3
各种格式的gsl帮助文件
\include\gsl 头文件
gsl include files
其中使用到的主要有bin,lib,include\gsl下的文件
(3)设置dev-c++编译环灶激州境,有两种方式:
将gsl安装目录下的bin下libgsl.dll,libgslcblas.dll复制到dev-c++安装目录下的bin目录下
lib下libgsl.a,libgslcblas.a复制到dev-c++安装目录下的lib目录下
include下的整个gsl文件夹复制到dev-c++安装目录下的include目录下.
Ⅵ 如何编译Windows版本的GSL
GSL全名为GNU Scientific Library,是GNU发起的一个科学计算项目,采用C语言编写,可以在C/C++开发中广泛使用。因为是开源项目,在Windows平台下面没有现成的安装文件可供使用,一般需要自己编译这个项目。现在我把自己从网上找的资料和自己编译的经过汇总一下,写成这个教程。
在Windows平台上编译GSL主要使用MinGW和MSYS这两个工具,
(1)下载安装 MinGW(安装时选择gcc,g++和Make这三项)
(2)下载铅让纤安装 MSYS
(3)下载MinGW Utilities 解压复制到MSYS安装目录
(4)下载解压gsl源码,
(5)进入gsl目录,执行命令:
./configure
make
make install
(6)完成编译之后,在MSYS安装目录下的
local/bin有编译了的gsl动态库文件libgsl-0.dll libgslcblas-0.dll
local/lib有编译好了的静态库文件libgsl.a libgsl.dll.a libgslcblas.a libgslcblas.dll.a
local/include有编程槐仿需要的gsl头文件
(7)此时你会发现,编译的结果缺少lib文件,现在我们来生成lib文件
cd /usr/local/bin
pexports libgsl-0.dll >libgsl-0.def
pexports libgslcblas-0.dll >libgslcblas-0.def
这时候就生产了两个def文件
(8)使用VC6或以上版本的lib命令,生成lib文件,具体如下:
lib /machine:i386 /def:libgsl-0.def
lib /machine:i386 /def:libgslcblas-0.def
(9)动态链接库拷贝到系统的Windows文件夹下面;
将gsl头文件(local/include里面的gsl目录)拷贝到include文件夹下面;
lib文件和*.a文件(local/lib下面)放到Lib文件夹下面,
编译器tools-options-directories添加Lib路径和Include路径
最后一步就是在滑简VC6的工程设置中的object/library moles里面添加以下内容:
libgslcblas-0.lib libgsl-0.lib
至此,整个gsl的移植工作就完成了。
Ⅶ 在VC中添加其他支持库和头文件的问题
如果都 .h/.lib都设置好了,编译是没有问题派清核的。.dll设置好了连接运行是正颂没有问题的。
(不知道你的GSL包的版本对不对,是不是fow vc 版本的,如果不是,请下载一个vc 版本的)。
一般第三方开发包在VC中使用的时候,需要预定义宏的设置(工程项目设置里面添加)。GSL好像是 GSL_DLL。你搜索一下编译错尘掘误提示的符号名称,看在哪个头文件里面,然后在这个头文件的前面找预定义宏,加到VC工程的项目设置里面
有个GSL的文章,你看看
http://hi..com/yilinghl/blog/item/038ee5241f846f3a8644f9bf.html
Ⅷ Cannot open include file: 'gsl/gsl_sf.h'
把gsl_sf.h放到VC98的include目录下得gsl目录试试
Ⅸ gsl函数库中的h文件的作用。比如说gsl_block_uint.h,gsl_matrix_ushort.h等等,我qq是405501625.
h文件中放的是变量、函数的声明,只有引用了带有改变量、函数声明的h文件,才能用该变量、函数
Ⅹ 如何学习c++
学习C++,这里有比较全面的七个步骤:
一、定义程序的目标
首先,没有目标的工作都是“耍流氓”,所以在动手写程序之前,要先在脑子里有清晰的思路。明确自己想做什么,需要哪些信息,要进行哪些计算和控制,以及程序应该要报告什么信息。这些都思考清楚后,才能进行下一步。
二、设计程序
对这项工作有概念性的认识后,就应该考虑如何用程序来完成它。例如,用户界面应该是怎样的?如何组织程序?目标用户是谁?准备花多长时间来完成这个程序?
除此之外,还要决定在程序中如何表示数据,以及用什么方法处理数据。学习C语言之初,遇到的问题都很简单。但是,随着要处理的情况越来越复杂,需要决策和考虑的方面也越来越多。通常,选择一个合适的方式表示信息可以更容易地设计程序和处理数据。
三、编写代码
设计好程序后,就可以着手编写代码了。这一步就是把你设计的程序翻译成C语言。一般而言,使用文本编辑器创建源代码文件。该文件中内容就是你翻译的C语言代码。程序清单1.1是一个C源代码的示例。在这一步骤中,应该给自己编写的程序添加文字注释。最简单的方式是使用C的注释工具在源代码中加入对代码的解释。
四、编译
接下来的这一步是编译源代码。编译器是把源代码转换成可执行代码的程序。可执行代码是用计算机的机器语言表示的代码。这种语言由数字码表示的指令组成。也就是说,不同的计算机使用不同的机器语言方案。C编译器负责把C代码翻译成特定的机器语言。此外,C编译器还将源代码与C库的代码合并成最终的程序。最后就可以生成一个用户可以运行的可执行文件,其中包含着计算机能理解的代码。
编译器还会检查C语言程序是否有效。如果C编译器发现错误,就不生成可执行文件并报错。理解特定编译器报告的错误或警告信息是程序员要掌握的另一项技能。
五、运行程序
传统上,可执行文件是可运行的程序。在常见环境(包括Windows命令提示符模式、UNIX终端模式和Linux终端模式)中运行程序要输入可执行文件的文件名,而其他环境可能要运行命令或一些其他机制。例如,在Windows和Macintosh提供的集成开发环境(IDE)中,用户可以在IDE中通过选择菜单中的选项或按下特殊键来编辑和执行C程序。最终生成的程序可通过单击或双击文件名或图标直接在操作系统中运行。
六、测试和调试程序
程序运行的过程中,可能会出现运行错误,计算机行话叫作bug,然后就要查找并修复程序错误,这个过程叫调试。你可能会犯基本的设计错误,可能错误地实现了一个好想法,可能忽视了输入检查导致程序瘫痪,可能会把圆括号放错地方,可能误用C语言或打错字等等。有bug是很正常的,不必紧张,现在我们可以进入下一步。
七、维护和修改代码
调试完程序后,就要修改程序。例如,用户输入以Zz开头的姓名时程序出现错误、你想到了一个更好的解决方案、想添加一个更好的新特性,或者要修改程序使其能在不同的计算机系统中运行,等等。如果在编写程序时清楚地做了注释并采用了合理的设计方案,维护和修改代码就是一件很容易的事情了。