安装完 cygwin和WFDB后,开始了《WFDB Programmer’s Guide》(WFDB程序员指南)第一个程序的测试 wfdb-10.6.2\examples\psamples.c:
#include <stdio.h>
#include <wfdb/wfdb.h>
main()
{
int i;
WFDB_Sample v[2];
WFDB_Siginfo s[2];
if (isigopen("100s", s, 2) < 1)
exit(1);
for (i = 0; i < 10; i++) {
if (getvec(v) < 0)
break;
printf("%d\t%d\n", v[0], v[1]);
}
exit(0);
}
在cygwin 中执行命令行:
cd wfdb-10.6.2/examples
gcc -o psamples psamples.c -lwfdb
此时会出现这样的错误:/usr/lib/gcc/i686-pc-cygwin/10/../../../../i686-pc-cygwin/bin/ld: cannot find -lwfdb
这个意思就是找不到相应动态链接库。 (cygwin中,-LXXX是 lib+库名的意思,例如此处,-lwfdb,对应的是libwfdb.dll),上面的错误就是没有找到libwfdb.dll。
这个文件一般应该在哪呢?一般都是在环境变量设置(和WINDOWS系统类似)的地方,如 : usr/lib; usr/bin/lib;等。
libwfdb.dll这个文件在哪呢,在cygwin目录下搜索一下,在/usr/local/bin文件夹下发现了一个非空文件的libwfdb.dll.a.10.6。
接下来就是建立一个软连接就行了。
软连接的命令(LN -s):
先用命令行进入文件夹usr/lib
cd usr/lib
再执行软连接命令,
ln -s /usr/local/bin/libwfdb.dll.a.10.6 libwfdb.dll
此时就在usr/lib下建立了一个类似windows下的快捷方式。
以上就把libwfdb.dll设置到环境变量中了。
执行两个命令行,cd ;cd wfdb-10.6.2/examples,切换到案例的目录下
再运行gcc -o psamples psamples.c -lwfdb
ok,顺利通过。
测试一下:./psamples
第一个例子完成了。
备注:
不带库编译:gcc -o psamples psamples.c 能编译通过,但运行时,会提示函数没有定义的错误。
带库编译: gcc -o psamples psamples.c -lwfdb 就解决以上这个问题。