15

我正在使用 Qt 4.8.3 和 QtCreator,我已经按照此处的说明使用 msvc2010 进行了编译。但是现在我需要链接到 GSL(Gnu 科学图书馆),但目前我只知道如何使用 g++ 构建它,这会产生链接器错误,正如这里所描述的那样,毫无疑问是因为@EvanTeran 的答案中给出的原因。但是,就我而言,通过 cygwin 使用 g++ 构建 Qt 可能不是一种选择——我刚刚摆脱了多天的噩梦,在此期间我试图做到这一点,但不能,如此所述。当然有一种方法可以使用 msvc2010 构建 gsl,但是如何?我已经安装了 VS 2012 Express(虽然我以前从未使用过),以防有使用它的解决方案。

编辑:看看 CMake,我能做的最好的事情似乎是为 GSL 手动创建 CMakeLists.txt 文件的整个层次结构。这有点太多了,所以我放了一个 100pt。赏金上面提到的问题。解决我的问题 Visual Studio 路线(此处)或使用 g++ 将获得赏金和这两个问题的答案。

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

4

2 回答 2

21

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

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

> 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 构建脚本现在包含在contribGSL Git 存储库的目录中git://git.savannah.gnu.org/gsl.git

GSL_SHARED自 2014 年 5 月起,通过选项也支持构建共享库 (DLL) 。

于 2013-01-22T20:58:33.113 回答
4

您可以使用 CMake 并从此存储库为您使用的任何 Visual Studio 版本创建自己的构建。查看@vitaut的答案以获取更多详细信息。

于 2012-11-15T12:30:47.133 回答