0

使用 gcc for Linux & Cygwin 链接到 Gnu 科学库有很好的文档。

在这里,我在 Windows 7 上工作,我所拥有的只是lcc编译器(http://www.cs.virginia.edu/~lcc-win32/,其中包括 lcc64 和 lcclnk64)和适用于 Windows 64 位的 GSL 库(https ://code.google.com/p/oscats/downloads/detail?name=gsl-1.15-dev-win64.zip&can=2&q= )。

我没有 cygwin/mingw/msys/Visual Studio。

我的问题lccgsl-1.15-dev-win64.zip. 测试代码是

 #include <stdio.h>
 #include <gsl/gsl_sf_gamma.h>

 int main (void)
 {
     double a = 20;
     double b = 10;
     double x = 0.5;
     double result = gsl_sf_beta_inc(a, b, x);
     printf("%f\n", result);
     return 0;
 }

编译不是问题。使用链接到 gsl 静态库lcclnk64是个问题。我尝试了以下变体:

 lcclnk64 test.obj -Lc:\gsl\lib -lgsl

首先编译,然后链接,或者通过一个调用lcc64运行整个过程,使用, ,然后重命名为,并且有/没有. 我仍然得到:lc64libgsl.dll.alibgsl.algsllibgsl.liblibgsl.dll.alibgsl.lib-subsystem console

 connect test.obj .text: undefined reference to 'gsl_sf_beta_inc'

我想链接到静态 GSL 库以获得独立的exe,在 Windows 7 上并使用lcc,如果我必须共享exe. 获取test.obj很容易,获取链接的对象libgsl.???完全让我感到困惑。感谢您的任何指示。

编辑:

我得到以下编译和链接没有错误,但是当我运行时,test.exe我得到一个错误对话框,告诉我缺少一个 DLL,我需要重新安装程序。

 lcc64 test.c -Ic:\gsl\include
 lcclnk64 test.obj libgsl.lib -Lc:\gsl\lib -subsystem console
4

1 回答 1

0

如果您无法为您的编译器获取所需的信息,您可以访问此处:

http://mingw-w64.sourceforge.net/download.php#mingw-builds

并选择/下载/安装您选择的编译器。

于 2015-02-21T05:34:08.443 回答