我阅读了pthreads_win32库的README,因为我使用的是MinGW,有一节说明如何使用库来运行程序:
如果你正在使用pthreadGC.dll:
使用三个头文件,pthreadGC.dll和libpthreadGC.a中 与您的应用程序myapp.c相同的目录,您可以编译,链接 并在Mingw32下运行myapp.c,如下所示:
gcc -o myapp.exe myapp.c -I。 -L。 -lpthreadGC
我下载了所有三个头文件,另外两个(他们在这个版本中实际上称为pthreadGC2.dll和libpthreadGC2.a)并将它们全部放在我当前的目录中。
现在如果我使用这一行编译,除了包含pthread库的行之外不使用pthread函数,则没有错误:
gcc -o project1.exe project1.c -I。 -L。 -lpthreadGC2
但是如果我尝试实际使用任何函数,那么在使用相同的行编译时我会得到它。
C:\ Users \ Michael \ AppData \ Local \ Temp \ cc4ftpKo.o:project1.c :(。text + 0x27):undefine
d引用_imp__pthread_exit'
C:\Users\Michael\AppData\Local\Temp\cc4ftpKo.o:project1.c:(.text+0xe0): undefine
d reference
在此处输入代码to
_ imp__pthread_create'
C:\ Users \ Michael \ AppData \ Local \ Temp \ cc4ftpKo.o:project1.c :(。text + 0x161):undefin
ed引用_imp__pthread_exit'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: C:\Users\M
ichael\AppData\Local\Temp\cc4ftpKo.o: bad reloc address 0x20 in section
。eh_fra
我'
c:/ mingw / bin /../ lib / gcc / mingw32 / 4.8.1 /../../../../ mingw32 / bin / ld.exe:最后一个链接
失败:操作无效
collect2.exe:错误:ld返回1退出状态
任何想法可能是什么?我对C中的库并不熟悉。