【问题标题】:linking to GSL library using lccwin64 compiler使用 lccwin64 编译器链接到 GSL 库
【发布时间】:2015-02-21 02:16:21
【问题描述】:

使用 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;
 }

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

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

首先使用lcc64 编译然后链接,或者使用lc64 调用运行整个过程,在将libgsl.dll.a 重命名为libgsl.lib 后使用libgsl.dll.alibgsl.algsllibgsl.lib,和有/没有-subsystem console。我仍然得到:

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

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

编辑:

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

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

【问题讨论】:

    标签: c gsl lcc-win32


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢。我确实让 GSL 1.8 库与 mingw 一起工作(我可以在网上找到的唯一 GSL 库),但希望看到同样的情况发生在 lcc 上。
    猜你喜欢
    • 2016-02-12
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多