使用lccwin64编译器链接到GSL库

时间:2015-02-21 02:16:22

标签: c gsl lcc-win32

使用gcc for Linux& amp;和gnu Scientific Library进行了很好的记录。 Cygwin的。

在这里,我正在使用Windows 7,而我所拥有的只是lcc编译器(http://www.cs.virginia.edu/~lcc-win32/,包括lcc64和lcclnk64)和用于Windows 64bits的GSL库({{3 }})。

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

我的问题与lcc以及gsl-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;
 }

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

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

首先使用lcc64进行编译,然后使用lc64libgsl.dll.alibgsl.a和{{1}进行链接,或使用lgsl次调用运行整个流程将libgsl.lib重命名为libgsl.dll.a后,使用/不使用libgsl.lib。我还是得到了:

-subsystem console

我想在Windows 7上使用 connect test.obj .text: undefined reference to 'gsl_sf_beta_inc' 链接到静态GSL库以获取独立exe,如果必须,则不必使用exe发送dll分享lcc。获得exe很容易,它会将对象链接到test.obj,这完全阻碍了我。谢谢你的任何指示。

编辑:

我得到以下内容进行编译和链接而没有错误,但是当我运行libgsl.???时,我收到一个错误对话框,告诉我DLL丢失了,我需要重新安装程序。

test.exe

1 个答案:

答案 0 :(得分:0)

如果您无法获得编译器所需的信息,可以转到此处:

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

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