如何使用msvc2010构建GSL?

时间:2012-11-07 20:42:24

标签: visual-studio qt visual-c++ shared-libraries gsl

我正在使用Qt 4.8.3和QtCreator,我根据说明here使用msvc2010编译。然而,现在我需要链接到GSL(Gnu科学图书馆),但是目前我只知道如何使用g ++来构建它,就像here所描述的那样产生链接器错误,这无疑是出于@EvanTeran的答案所给出的原因。然而,在我的情况下,通过cygwin用g ++构建Qt可能不是一个选择 - 我只是在一个多天的噩梦中,我试图做到这一点,但不能,如记录here 。当然有一种方法可以用msvc2010构建gsl,但是怎么样?我安装了VS 2012 Express(虽然我之前从未使用过),以防有使用它的解决方案。

编辑:看看CMake,我最好能够为GSL手动创建CMakeLists.txt文件的整个层次结构。这只是有点太多,所以我放了100pt。关于上述问题的赏金。解决我的问题Visual Studio路由(这里)或与g ++将得到赏金和两个问题的答案。

更新:以下答案效果很好,但不是无缝的,可能是因为我实际上需要在VS2012下编译。需要对代码进行一些调整,例如显式强制转换,在前一个编译器中显然可以容忍,但不是我的。事情进展顺利。

2 个答案:

答案 0 :(得分:20)

我在这里实施了对GSL的CMake构建支持:https://github.com/ampl/gsl

CMake可以生成Visual Studio解决方案或NMake makefile。例如:

> git clone git://github.com/ampl/gsl.git
> cd gsl
> cmake .
-- Building for: Visual Studio 10
-- Check for working C compiler using: Visual Studio 10
-- Check for working C compiler using: Visual Studio 10 -- works
...

这将为Visual Studio 2010生成解决方案(GSL.sln)和项目文件。

此CMake构建脚本现在包含在GSL Git存储库contrib的{​​{1}}目录中。

截至2014年5月,支持构建共享库(DLL)以及git://git.savannah.gnu.org/gsl.git选项。

答案 1 :(得分:4)

您可以使用CMake并从this repository创建自己的构建版本,以用于您正在使用的任何Visual Studio版本。有关详情,请查看@vitaut的the answer