c - 使用 lccwin64 编译器链接到 GSL 库

标签 c gsl lcc-win32

使用 Linux 和 Cygwin 的 gcc 链接到 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进行编译,然后使用libgsl.dll.a进行链接或通过一次lc64调用运行整个进程,libgsl.dll.a 重命名为 libgsl.lib< 后的 >libgsl.algsllibgsl.lib/code>,以及带/不带-子系统控制台。我仍然得到:

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

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

编辑:

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

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

最佳答案

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

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

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

关于c - 使用 lccwin64 编译器链接到 GSL 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28641312/

相关文章:

c - 在行 : str = (char *) malloc(15); what does the (char *) mean?

c++ - 将 GSL 与 Xcode 集成

c++ - 使用 GSL 拟合分段 "broken stick"模型

macos - ld : library not found for -lgsl

c - 写入 DLL 中的变量时发生段冲突 (lcc-win32)

c - 插入排序什么都不做

c - 将 FTDI 的 D2XX 与 C 一起使用

在嵌入式 C 中创建寄存器的可迭代列表

c - 使用 ProtoBuf 将数据流式传输到带有 header 的日志文件

c++ - 是否可以将整数的每个数字存储到 char 数组中?